已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
呼叫中心专家 Apache HTTP Server搭建虚拟主机Apache简介Apache HTTP Server项目是在Windows与Unix等平台上都可以运行的跨平台开源HTTP服务器软件,该项目的目标是提供安全、高效、可扩展的HTTP服务。Apache httpd自从1996年发布以来,如今已经成为世界排名第一的Web服务器软件。Apache httpd最新的稳定版本为2.4.4。安装Apache httpd软件可以选择源码安装或二进制包安装,但由于源码安装是可以定制的一种安装方式,这种安装方式灵活性比较大,可以满足企业对这种环境的不同需求。二进制包安装在CentOS 6.3系统中可以选择RPM包安装,这种安装的最大好处就是简单快捷。本书采用的是源码安装软件包,由于源码安装需要大量的依赖包,需要先安装这些依赖软件包。Apache HTTP Sever非常重要的特性是她采用了模块化设计模型,Apache模块分为静态模块与动态模块,静态模块是Apache最基本的模块,是无法随时添加与卸载的模块,静态模块在编译软件时设定。动态模块是可以随时添加删除的模块,这样的设计使得企业部署Apache时可以获得最大的灵活性,每个企业都可以根据自己的平台以及实际需求,安装使用不同的模块功能。Apache模块将被编译为动态共享对象(DSOs),这些动态共享对象独立于httpd程序,DSO模块可以在编译Apache是添加,也可以后期随时通过Apache Extension Tool(apxs)工具编译添加模块。Apache HTTP Server软件安装完成后可以使用httpd M查看模块加载清单。安装Apache软件1. 下载软件包1. rootcentos6#wget/apache/httpd/httpd-2.4.4.tar.gz2. rootcentos6#wget/apache/apr/apr-1.4.6.tar.gz3. rootcentos6#wget/apache/apr/apr-util-1.5.2.tar.gz2. 安装软件1. rootcentos6#yumyinstallgccautoconfautomakemake2. pcrepcre-developensslopenssl-devel3. rootcentos6#tarxzfhttpd-2.4.4.tar.gzC/usr/src/4. rootcentos6#tarxzfapr-1.4.6.tar.gzC/usr/src/5. rootcentos6#tarxzfapr-util-1.5.2.tar.gzC/usr/src/6. rootcentos6#cd/usr/src/apr-1.4.6/7. rootcentos6apr-1.4.6#./configure-with-apr=/usr/local/apr/8. rootcentos6apr-1.4.6#make&makeinstall9. rootcentos6apr-1.4.6#cd/usr/src/apr-util-1.5.2/10. rootcentos6apr-util-1.5.2#./configure-with-apr=/usr/local/apr/11. rootcentos6apr-util-1.5.2#make&makeinstall12. rootcentos6apr-util-1.5.2#cd/usr/src/httpd-2.4.4/13. rootcentos6httpd-2.4.4#./configureprefix=/usr/local/apache2enable-so14. -enable-ssl-enable-rewritewith-mpm=workerwith-suexec-bin15. -with-apr=/usr/local/apr/16. rootcentos6httpd-2.4.4#make&makeinstallconfigure脚本用来检查系统环境、查找依赖文件、设置安装路径等操作,configure拥有很多参数,读者可以通过./configure -help查看该脚本支持的所有参数。下面是configure常用参数说明:参数 描述-prefix 指定Apache httpd程序的安装主目录-enable-so 开启模块化功能,支持DSO(动态共享对象)-enable-ssl 支持SSL加密-enable-rewrite 支持地址重写-with-mpm 设置Apache httpd工作模式-with-suexec-bin 支持SUID、SGID-with-apr 指定apr程序绝对路径3. 启动服务1. rootcentos6#/usr/local/apache2/bin/apachectlstart2. rootcentos6#netstat-ntulp|grephttp3. rootcentos6#iptables-IINPUT-ptcp-dport80-jACCEPT安装完成后Apache会提供名为apachectl启动脚本,该脚本提供了Apache httpd的启动、关闭以及测试功能,没有修改配置文件的情况下使用start启动httpd程序,可能会返回错误提示:”Could not reliably determine the servers fully qualified domain name”,提示说明httpd无法确定服务器域名称,可以修改主配置文件的ServerName项来解决。该提示也可以忽略,通过netstat命令查看httpd已经启动成功。在客户端使用浏览器访问该Web服务器,看到”IT works!”说明服务器可以被正常访问了。apachectl具体参数如下:参数 描述start 启动httpd程序,如果已经启动过该程序则报错stop 关闭httpd程序restart 重启httpd程序graceful 启动httpd,不中断现有的连接graceful-stop 关闭httpd,不中断现有的连接status 查看httpd程序当前状态configtest 检查httpd主配置文件语法配置文件解析Apache配置文件默认位于/usr/local/apache2/conf目录下,在该目录下最主要的配置文件是httpd.conf文件,还有一些位于extra目录下的附加配置文件。此外original目录中存有所有这些配置文件的副本。Apache HTTP Sever主配置文件主要由指令以及容器组成,容器使用开始,结尾,容器的指令一般仅在局部有效。下面是对主配置文件重点指定的具体描述。SeverRoot指令ServerRoot指令设置Apache软件的安装主目录,如果采用源码安装则默认路径为/usr/local/apache2。Listen指令Listen指令设置服务器监听的IP以及端口号,默认监听服务器本机所有的IP地址的80端口。语法格式为Listen IP地址:端口 协议,其中IP地址与协议为可选项,默认监听所有IP,使用TCP协议。一个配置文件中可以多次使用Listen指令来开启多个端口。LoadModule指令Apache HTTP Server的特色之一就是她的功能多数是以模块方式加载的,但如果希望Apache动态加载模块,需要在编译Apache时通过-enable-so将mod_so以静态方式编译到Apache核心模块中,LoadModule指令的作用就是加载模块。语法格式为LoadModule 模块 模块文件名称,模块文件一般位于ServerRoot指定目录下的modules目录中。LoadFile指令LoadFile指令功能类似于LoadModule,区别在于LoadFile可以通过绝对路径加载modules目录以为的模块文件。ServerAdmin指令当网站出现故障时,需要为客户提供一个可以帮助解决问题的邮件地址,ServerAdmin指令的作用就是提供这样的邮件地址。ServerName指令ServerName指令设置服务器本机的主机名称以及端口,对于URL地址的重定向很重要。DocumentRoot指令该指令设置Web服务对客户端开放可见的文档根目录,也就是客户端访问网站的根路径,默认为/usr/local/apache2/htdocs。ErrorLog指令ErrorLog定位服务器错误日志的位置,默认使用相对路径,为ServerRoot指定目录下的”logs/error_log”文件。ErrorLogFormat指令设置错误日志的格式,Apache HTTP Server事先定义了很多格式字串 可以直接引用。CustomLog指令该指令设置客户端的访问日志文件名以及日志格式,默认为”logs/access_log”,语法格式为CustomLog 文件名 格式。LogFormat指令描述用户日志文件格式,可以直接使用Apache预先设置的格式字串,一般我们会为LogFormat指令设置的日志格式创建别名,然后可以再通过CustomLog指令调用该日志格式别名。Include指令Include指令允许Apache在主配置文件中加载其他的配置文件,该指令语法比较简单,Inclde指令后直接跟上其他附加配置文件路径即可。Options指令为特定目录设置选项,语法格式为Options +|-选项 +|-选项。选项可以设置为None,代表不启用任何额外功能,也可以使用如下常用选项。All:开启出来MultiViews之外的所有选项。ExecCGI:允许执行CGI脚本。FollowSymlinks:允许目录下通过链接文件链接到目录外的文件或目录。Indexes:如果与URL对应的目录下,没有DirectoryIndex指定的首页文档,则Apache将会把当前目录的所有文件索引出来。Order指令控制默认访问状态以及Allow与Deny次序,如果使用Order deny,allow,则先检查拒绝,没有拒绝则默认允许。如何使用Order allow,deny,则先检查允许,没有允许则默认拒绝。以下为具体案例:Order deny,allowDeny from all先检查拒绝规则,再检查允许规则,默认为允许。这里Deny From all代表拒绝所有,所以最终结果为拒绝所有。Order Allow,Denyallow from All先检查允许规则,再检查拒绝规则,allow from all代表允许所有,所以最终结果为允许所有。Order Allow,Denyallow from 先检查允许规则时允许,其余为默认值,默认为拒绝所有,最终除外拒绝所有。Order Allow,Denyallow from Deny from All先检查允许规则时允许访问,但检查拒绝规则时为拒绝所有,而也包含在all之中,当Allow与Deny有冲突时,以Order最后的规则覆盖其他的规则,本案例将使用Deny规则覆盖Allow规则,最终效果为拒绝所有人访问。Order Deny,AllowDeny from allallow from 先检查拒绝规则,再检查允许规则,拒绝规则为拒绝所有,允许规则为允许,拒绝与允许规则有冲突的部分本案例将采用Allow的规则,最终本案例可以实现仅允许访问,其他任何主机均无法访问Apache服务。IfDefine容器IfDefine容器封装的指令仅在启动Apache时测试条件为真才会被处理,测试条件需要在启动Apache时通过httpd -D定义。语法格式为指令。具体案例如下:LoadModule mem_cache_module modules/mod_mem_cache.soLoadModule cache_module modules/mod_ cache.so这样的配置可以让管理员采用多种配置方式启动Apache,启动Apache时如果使用了httpd -DuseCache -DMemCache,则Apache将加载mod_mem_cache与mod_cache模块,如果没有使用-D指定任何参数,则Apache将不加载这些模块。IfModule容器使用IfModule容器可以封装仅在条件满足时才会处理的指令,根据指定的模块是否加载决定条件是否满足,语法格式指令。具体案例如下:User daemonGroup daemon以上配置说明,仅在Apache加载了unixd_module模块后User daemon与Group daemon才会被Apache处理。Directory容器该容器内的指令仅应用于特定的文件系统目录、子目录以及目录下的内容,语法格式为指令。路径可以使用匹配正则表达式。具体案例如下:Options Indexs FollowSymLinksAllowOverride None以上案例中Opions Index FollowSymLins仅对/usr/local/apache2/htdocs目录有效,AllowOverride None仅对所有/www目录下包含三个数字的子目录有效。DirectoryMatch类似于Directory,但可以直接使用正则表达式匹配,而无需像Directory一样使用符号才可以匹配。Files容器该容器类似于Directory容器,但Files容器内的指令仅应用于特定的文件,语法格式如下:指令,与Directory类似可以使用匹配正则表达式。FilesMatch容器仅使用正则表达式匹配需要的文件,容器内的指令仅应用于匹配成功的特定文件。FilesMatch等同于使用了符号的Files。Location容器Location容器内定义的指令仅对特定的URL有效,语法格式为指令,如果需要使用正则表达式匹配URL可以使用符号。LocationMathch容器LocationMatch仅使用正则表达式匹配URL,等同于使用了符号匹配的Location。VirtualHost容器虚拟主机应用案例虚拟主机是在一台服务器上同时运行多个网站业务,Apache HTTP Server支持基于域名以及基于IP虚拟主机类型。在Apache配置文件中虚拟主机指令需要使用VirtualHost容器封装。基于IP的虚拟主机可以根据不同的IP地址以及端口号定位不同的网站请求,但基于IP的虚拟主机需要独立的IP地址定位连接的网站,而目前IP地址是互联网的稀缺资源,所以很多时候我们更喜欢基于域名的虚拟主机,服务器可以根据客户端访问HTTP的头部信息来实现网站的分离解析,客户端可以使用不同的域名访问位于同一IP地址的服务器资源。当客户端请求到达后,服务器会根据参数匹配IP地址与端口号,IP地址可以使用*匹配服务器本地所有IP地址。接下来我们通过一个案例说明基于域名虚拟主机的实现方式,首先我们需要将主配置文件中Include conf/extra/httpd-vhosts.conf这样功能开启,默认该行为注释行,去除#符号即可。Include指令会将httpd-vhosts.conf文件视作为配置文件的一部分。下面我们仅列出该配置文件中需要修改的部分。1. rootcentos6#vim/usr/local/apache2/conf/extra/httpd-vhosts.conf2. 3. ServerAdminJacob_4. DocumentRoot/usr/local/apache2/htdocs/example5. ServerN6. ServerA7. ErrorLoglogs/-error_log8. CustomLoglogs/-acc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 县级体育馆社会体育指导员飞盘高尔夫工作年度总结
- 大型云项目架构设计能力提升计划中级
- 探秘成功的网络营销背后产品选择的核心因素
- 初级汽车维修技能实训指导书
- 会计工作计划与财务报表编制指南
- 中国石油拉美面试准备博客
- 话务员呼叫中心情绪管理与压力应对好用指南
- 平顶山燃气整改通知书
- 广东工业大学助学班入学通知书
- 广西服预备役通知书
- 第六课-实现人生的价值-课件-高中政治统编版必修四哲学与文化-
- 砂石料场租赁协议
- 第15届全国海洋知识竞赛参考试指导题库(含答案)
- 收养申请书模板
- 干部人才培养与医院管理
- 公共基础知识复习资料梳理版
- 《SEM基础知识培训》课件
- 农村耕地承包权永久转让合同
- 【MOOC】数字逻辑与数字系统设计-中国矿业大学 中国大学慕课MOOC答案
- Unit4 Body Language Using Language 说课稿-2024-2025学年高中英语人教版(2019)选择性必修第一册
- 医疗机构信息系统安全防护预案
评论
0/150
提交评论