指令ApacheHTTPServer搭建虚拟主机

虚拟主机搭建  时间:2021-05-03  阅读:()

呼叫中心专家http://wwwfocust arnet

Apache HTTP Server搭建虚拟主机

Apache简介

Apache HTTP Server项目是在Wi ndows与Unix等平台上都可以运行的跨平台开源HTTP服务器软件该项目的目标是提供安全、高效、可扩展的HTTP服务。Apache httpd自从1996年发布以来如今已经成为世界排名第一的Web服务器软件。Apache httpd最新的稳定版本为2.4.4。安装Apachehttpd软件可以选择源码安装或二进制包安装但由于源码安装是可以定制的一种安装方式这种安装方式灵活性比较大可以满足企业对这种环境的不同需求。二进制包安装在Cen t O

S 6.3系统中可以选择RPM包安装这种安装的最大好处就是简单快捷。本书采用的是源码安装软件包 由于源码安装需要大量的依赖包需要先安装这些依赖软件包。

Apache HTTP Sever非常重要的特性是她采用了模块化设计模型 Apache模块分为静态模块与动态模块静态模块是A pache最基本的模块是无法随时添加与卸载的模块静态模块在编译软件时设定。动态模块是可以随时添加删除的模块这样的设计使得企业部署A pache时可以获得最大的灵活性每个企业都可以根据自己的平台以及实际需求安装使用不同的模块功能。 Apache模块将被编译为动态共享对象DS O s 这些动态共享对象独立于h ttpd程序 DSO模块可以在编译Ap ache是添加也可以后期随时通过Apa che Extens ion Tool apxs工具编译添加模块。Apache HTTP Server软件安装完成后可以使用h ttpd –M查看模块加载清单。

安装Apac he软件

1. 下载软件包

1. [root@centos 6 ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4 .4

.tar.gz

2. [root@centos 6 ~]# wget http://mirror.bjtu.edu.cn/apache/apr/apr-1 .4.6.tar.gz

3. [root@centos 6 ~]# wget http://mirror.bjtu.edu.cn/apache/apr/apr-util-1 .5

.2.tar.gz

呼叫中心专家http://wwwfocust arnet

2. 安装软件

1. [root@centos6 ~]# yum –y install gcc autoconf automake make \

2. > pcre pcre-devel openssl openssl-devel

3. [root@centos6 ~]# tar –xzf httpd-2.4 .4.tar.gz –C /usr/src/

4. [root@centos6 ~]# tar –xzf apr-1.4.6 .tar.gz –C /usr/src/

5. [root@centos6 ~]# tar –xzf apr-util-1.5.2 .tar.gz –C /usr/src/

6. [root@centos6 ~]# cd /usr/src/apr-1. 4.6/

7. [root@centos6 apr-1.4.6]# ./configure --with-apr=/usr/local/apr/

8. [root@centos6 apr-1.4.6]# make && make install

9. [root@centos6 apr-1.4 .6]# cd /usr/src/apr-util-1.5.2/

10. [root@centos6 apr-util-1.5.2]# ./configure --with-apr=/usr/local/apr/

11. [root@centos6 apr-util-1.5.2]# make && make install

12. [root@centos6 apr-util-1.5.2]# cd /usr/src/httpd-2. 4.4/

13. [root@centos6 httpd-2.4.4] # ./configure –prefix=/usr/local/apache2 –enable-so \

14.> --enable-ssl --enable-rewrite –with-mpm=worker –with-suexec-bin \

15.> --with-apr=/usr/local/apr/

16. [root@centos6 httpd-2.4.4] # make && make installconfig ure脚本用来检查系统环境、查找依赖文件、设置安装路径等操作config ure拥有很多参数读者可以通过./config ure --help查看该脚本支持的所有参数。

下面是con figure常用参数说明

参数 描述

--prefix 指定Apache httpd程序的安装主目录

--enable-so 开启模块化功能支持DSO 动态共享对象

--enable-ssl 支持SSL加密

--enable-rewrit e 支持地址重写

--with-mpm 设置Apac he httpd工作模式

--with-suexec-bin 支持SUID、 SGID

--with-apr 指定apr程序绝对路径

3. 启动服务

呼叫中心专家http://wwwfocust arnet

1. [root@centos6 ~]# /usr/local/apache2/bin/apachectl start

2. [root@centos6 ~]# netstat -ntulp |grep http

3. [root@centos 6 ~]# iptables -I INPUT -p tcp -dport 80 -j ACCEPT

安装完成后A pache会提供名为ap achect l启动脚本该脚本提供了Apache httpd的启动、关闭以及测试功能没有修改配置文件的情况下使用start启动httpd程序可能会返回错误提示 ”Could not reliab ly determ ine the server ’ s fully qualif ied domain name” 提示说明httpd无法确定服务器域名称可以修改主配置文件的Se rverNa me项来解决。该提示也可以忽略通过nets tat命令查看httpd已经启动成功。

在客户端使用浏览器访问该Web服务器看到” IT works!”说明服务器可以被正常访问了。apache ctl具体参数如下

参数 描述start 启动httpd程序如果已经启动过该程序则报错stop 关闭httpd程序restar t 重启httpd程序gracef ul 启动httpd不中断现有的连接gracef ul-stop 关闭httpd不中断现有的连接status 查看httpd程序当前状态config test 检查httpd主配置文件语法

配置文件解析

Apache配置文件默认位于/usr/local/apache 2/conf目录下在该目录下最主要的配置文件是http d.conf文件还有一些位于extra目录下的附加配置文件。此外orig inal目录中存有所有这些配置文件的副本。 Apache HTTP Sever主配置文件主要由指令以及容器组成容器使用<容器名称>开始 </容器名称>结尾容器的指令一般仅在局部有效。下面是对主配置文件重点指定的具体描述。

呼叫中心专家http://wwwfocust arnet

SeverR oot指令

Server Root指令设置Apac he软件的安装主目录如果采用源码安装则默认路径为

/usr/local/apache 2。

Listen指令

Listen指令设置服务器监听的IP以及端口号默认监听服务器本机所有的IP地址的80端口。语法格式为L isten [IP地址: ]端口 [协议] 其中IP地址与协议为可选项默认监听所有IP使用TCP协议。一个配置文件中可以多次使用Liste n指令来开启多个端口。

LoadMo dule指令

Apache HTTP Server的特色之一就是她的功能多数是以模块方式加载的但如果希望Apache动态加载模块需要在编译A pache时通过--enable-so将mod_so以静态方式编译到A pache核心模块中LoadMo dule指令的作用就是加载模块。语法格式为L oadMod ule模块模块文件名称模块文件一般位于Serv erRoot指定目录下的module s目录中。

LoadFi le指令

LoadFi le指令功能类似于LoadModul e区别在于Lo adFile可以通过绝对路径加载mo dules目录以为的模块文件。

ServerAdmin指令

当网站出现故障时需要为客户提供一个可以帮助解决问题的邮件地址 Server Admin指令的作用就是提供这样的邮件地址。

Server Name指令

Server Name指令设置服务器本机的主机名称以及端口对于URL地址的重定向很重要。Docume ntRoot指令

该指令设置Web服务对客户端开放可见的文档根目录也就是客户端访问网站的根路径默认为/usr/local/apache 2/htdocs 。

呼叫中心专家http://wwwfocust arnet

ErrorL og指令

ErrorL og定位服务器错误日志的位置默认使用相对路径为ServerRoot指定目录下的”logs/error_log”文件。

ErrorL ogForm at指令

设置错误日志的格式 Apache HTTP Server事先定义了很多格式字串可以直接引用。Custom Log指令

该指令设置客户端的访问日志文件名以及日志格式默认为” logs/access_log” 语法格式为C ustomL og文件名格式。

LogFor mat指令

描述用户日志文件格式可以直接使用Apache预先设置的格式字串一般我们会为LogFor mat指令设置的日志格式创建别名然后可以再通过Cus t o mLog指令调用该日志格式别名。

Include指令

Includ e指令允许Apache在主配置文件中加载其他的配置文件该指令语法比较简单 Inclde指令后直接跟上其他附加配置文件路径即可。

Option s指令

为特定目录设置选项语法格式为O ptions [+|-]选项[ [+|-]选项] 。选项可以设置为None代表不启用任何额外功能也可以使用如下常用选项。

All开启出来Mu ltiViews之外的所有选项。

ExecCG I允许执行CG I脚本。

FollowSymlinks允许目录下通过链接文件链接到目录外的文件或目录。

Indexe s如果与URL对应的目录下没有Dire ctoryI ndex指定的首页文档则Apach e将会把当前目录的所有文件索引出来。

Order指令

呼叫中心专家http://wwwfocust arnet

控制默认访问状态以及Al low与Deny次序如果使用Or der deny,allow则先检查拒绝没有拒绝则默认允许。如何使用Or der allow deny则先检查允许没有允许则默认拒绝。以下为具体案例

Order deny,allow

Deny from all

先检查拒绝规则再检查允许规则默认为允许。这里Deny From all代表拒绝所有所以最终结果为拒绝所有。

Order Allow,Denyallow from All

先检查允许规则再检查拒绝规则 allow from all代表允许所有所以最终结果为允许所有。Order Allow,Denyallow from 192. 168.0. 1

先检查允许规则时允许192. 168.0. 1其余为默认值默认为拒绝所有最终除192 .168.0. 1外拒绝所有。

Order Allow,Denyallow from 192. 168.0. 1

Deny from All

先检查允许规则时允许192. 168.0. 1访问但检查拒绝规则时为拒绝所有而192. 168.0. 1也包含在a ll之中当Allow与Deny有冲突时以Order最后的规则覆盖其他的规则本案例将使用Deny规则覆盖Al l o w规则最终效果为拒绝所有人访问 。

Order Deny,Allow

Deny from allallow from 192. 168.0. 1

呼叫中心专家http://wwwfocust arnet

先检查拒绝规则再检查允许规则拒绝规则为拒绝所有允许规则为允许192. 168.0. 1拒绝与允许规则有冲突的部分本案例将采用Allow的规则最终本案例可以实现仅允许192. 168.0. 1访问其他任何主机均无法访问A pache服务。

IfDefi ne容器

IfDefi ne容器封装的指令仅在启动Apache时测试条件为真才会被处理测试条件需要在启动Apa che时通过httpd -D定义。语法格式为<IfDefi ne>指令</IfDefi ne>。具体案例如下<IfDefi ne MemCac he>

LoadMo dule mem_ca che_mo dule module s/mod_me m_cach e. so

</IfDefi ne>

<IfDefi ne UseCache>

LoadMo dule cache_module module s/mod_ cache. so

</IfDefi ne>

这样的配置可以让管理员采用多种配置方式启动Apa che启动Apac he时如果使用了http d-DuseCa che -DMemCa che则Apach e将加载mo d_mem_cache与mod_ca che模块如果没有使用-D指定任何参数则Apach e将不加载这些模块。

IfModu le容器

使用IfMo dule容器可以封装仅在条件满足时才会处理的指令根据指定的模块是否加载决定条件是否满足语法格式<IfModu le [ ! ]模块>指令</IfModu le>。具体案例如下

<IfModu le unixd_module>

User daemon

Group daemon

</IfModu le>

以上配置说明仅在Apac he加载了u nixd_m odule模块后User daemon与Group daemon才会被Apa

呼叫中心专家http://wwwfocust arnet

che处理。

Direct ory容器

该容器内的指令仅应用于特定的文件系统目录、子目录以及目录下的内容语法格式为<Directory direct ory-path>指令</Directory>。路径可以使用~匹配正则表达式。具体案例如下<Direct ory “/usr/local/apche2/htdocs ” >

Option s Indexs FollowSymLinks

</Direct ory>

<Direct ory ~ “^/www/[0-9] {3}” >

AllowO verrid e None

</Direct ory>

以上案例中O pions Index FollowSymLin s仅对/usr/local/apache 2/htdocs 目录有效 AllowOverrid e None仅对所有/www目录下包含三个数字的子目录有效。

<Direct oryMat ch>

Direct oryMat ch类似于D irectory但可以直接使用正则表达式匹配而无需像Di rectory一样使用~符号才可以匹配。

Files容器

该容器类似于Direct ory容器但Files容器内的指令仅应用于特定的文件语法格式如下<Files文件名>指令</File>与Direc tory类似可以使用~匹配正则表达式。

FilesMatch容器

仅使用正则表达式匹配需要的文件容器内的指令仅应用于匹配成功的特定文件。Fi lesM atch等同于使用了~符号的Files。

Locati on容器

Locati on容器内定义的指令仅对特定的URL有效语法格式为<Locati on URL-path|URL>指令

呼叫中心专家http://wwwfocust arnet

</Locati on>如果需要使用正则表达式匹配URL可以使用~符号。

Locati onMathch容器

Locati onMatch仅使用正则表达式匹配URL等同于使用了~符号匹配的Location。

Virtua lHost容器

虚拟主机应用案例

虚拟主机是在一台服务器上同时运行多个网站业务 Apache HTTP Server支持基于域名以及基于IP虚拟主机类型。在Apache配置文件中虚拟主机指令需要使用Vi rtualHost容器封装。基于IP的虚拟主机可以根据不同的IP地址以及端口号定位不同的网站请求但基于IP的虚拟主机需要独立的IP地址定位连接的网站而目前IP地址是互联网的稀缺资源所以很多时候我们更喜欢基于域名的虚拟主机服务器可以根据客户端访问HTTP的头部信息来实现网站的分离解析客户端可以使用不同的域名访问位于同一IP地址的服务器资源。

当客户端请求到达后服务器会根据<VirtualHost IP地址: [端口号]>参数匹配IP地址与端口号IP地址可以使用*匹配服务器本地所有IP地址。接下来我们通过一个案例说明基于域名虚拟主机的实现方式首先我们需要将主配置文件中Inclu de conf/extra/httpd-vhosts .conf这样功能开启默认该行为注释行去除#符号即可。 Includ e指令会将h ttpd-vhosts .conf文件视作为配置文件的一部分。下面我们仅列出该配置文件中需要修改的部分。

1. [root@centos 6 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts .conf

2. <VirtualHost *:80>

3. ServerAdmin Jacob_test@gmail.com

4. DocumentRoot "/usr/local/apache2/htdocs/exampl e"

5. ServerName www.exampl e.com

6. ServerAlias web.example.com

7. ErrorLog "logs/www.example.com-error_log"

8. CustomLog "logs/www.exampl e.com-access_log" common

9. </VirtualHost>

10.<VirtualHost *:80>

11. ServerAdmin Jacob_test@gmail.com

12. DocumentRoot "/usr/local/apache2/htdocs/test"

新网,域名7月盛夏1核心2G内存.COM域名仅19.9元/首年,主机9.9元/月,企业邮箱0元体验

新网好不好?新网域名便宜吗?新网怎么样?新网是国内老牌知名域名注册商,企业正规化运营,资质齐全,与阿里云万网和腾讯云DNSPOD同为国内服务商巨头。近日新网发布了最新的七月放价季优惠活动,主要针对域名、云主机、企业邮箱、SSL证书等多款云产品推送了超值的优惠,其中.com顶级域名仅19.9元/首年,.cn域名仅16元/首年,云主机1核心2G内存3Mbps带宽仅9.9元/月,企业邮箱更是免费送1年,...

Spinservers美国圣何塞服务器$111/月流量10TB

Spinservers是Majestic Hosting Solutions,LLC旗下站点,主营美国独立服务器租用和Hybrid Dedicated等,数据中心位于美国德克萨斯州达拉斯和加利福尼亚圣何塞机房。TheServerStore.com,自 1994 年以来,它是一家成熟的企业 IT 设备供应商,专门从事二手服务器和工作站业务,在德克萨斯州拥有 40,000 平方英尺的仓库,库存中始终有...

HostYun 新上美国CN2 GIA VPS 月15元

HostYun 商家以前是玩具主机商,这两年好像发展还挺迅速的,有点在要做点事情的味道。在前面也有多次介绍到HostYun商家新增的多款机房方案,价格相对还是比较便宜的。到目前为止,我们可以看到商家提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路。近期,HostYun上线低价版美国CN2 GIA ...

虚拟主机搭建为你推荐
用户重庆支持ipad支持ipad支持ipad支持ipadVTLHiosipadwifiipad wifi信号差怎么办win10关闭445端口在win10 如何关闭445端口的最新相关信息tcpip上的netbios网络连接详细信息上的netbios over tcpip是什么意思?xp关闭445端口Windows XP系统 关闭445端口后无法上网,求解?
美国网站空间 免费域名空间申请 php空间租用 budgetvm 新加坡主机 justhost t楼 安云加速器 精品网 wdcp 线路工具 typecho 网页背景图片 标准机柜尺寸 100m免费空间 太原联通测速平台 泉州电信 网站卫士 国外免费asp空间 gtt 更多