呼叫中心专家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"
便宜的香港vps多少钱?现在国外VPS主机的价格已经很便宜了,美国VPS主机最低一个月只要十几元,但同样免备案的香港VPS价格贵不贵呢?或者说便宜的香港VPS多少钱?香港vps主机价格要比美国机房的贵一些,但比国内的又便宜不少,所以目前情况是同等配置下,美国VPS比香港的便宜,香港VPS比国内(指大陆地区)的便宜。目前,最便宜香港vps低至3元/首月、18元/月起,今天云服务器网(www.yunt...
DogYun是一家2019年成立的国人主机商,提供VPS和独立服务器租用等,数据中心包括中国香港、美国洛杉矶、日本、韩国、德国、荷兰等,其中VPS包括常规VPS(经典云)和按小时计费VPS(动态云),使用自行开发的面板和管理系统,支持自定义配置,动态云各个硬件独立按小时计费,带宽按照用户使用量计费(不使用不计费)或者购买流量包,线路也可以自行切换。目前商家发布了6.18促销方案,新购动态云7折,经...
优林怎么样?优林好不好?优林 是一家国人VPS主机商,成立于2016年,主营国内外服务器产品。云服务器基于hyper-v和kvm虚拟架构,国内速度还不错。今天优林给我们带来促销的是国内东北地区哈尔滨云服务器!全部是独享带宽!首月5折 续费5折续费!地区CPU内存硬盘带宽价格购买哈尔滨电信2核2G50G1M53元直达链接哈尔滨电信4核4G50G1M83元直达链接哈尔滨电信8核8G50G1M131元直...