网厅系统apache安装配置详细操作.docx
- 文档编号:23476559
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:15
- 大小:91.99KB
网厅系统apache安装配置详细操作.docx
《网厅系统apache安装配置详细操作.docx》由会员分享,可在线阅读,更多相关《网厅系统apache安装配置详细操作.docx(15页珍藏版)》请在冰豆网上搜索。
网厅系统apache安装配置详细操作
网厅系统Apache安装详细步骤
版本管理
作者
版本
修改时间
修改内容
张俊学
V1.0
2011年5月17日星期二
张俊学
V1.1
2011年5月31日星期二
新增“查询主机内存”
1Apache软件下载2
2Apache软件升级3
3Aapche软件安装4
3.1步骤14
3.2步骤26
3.3步骤36
4Apache服务配置6
4.1Httpd.conf配置7
4.1.1修改运行用户7
4.1.2修改服务端口号7
4.1.3加载需要的模块8
4.2httpd-vhosts.conf配置8
4.3httpd-mpm.conf配置11
5Apache服务起停13
6Apache服务查看13
7Apache相关查询14
7.1linux下如何查看apache的请求进程数14
7.2查询cpu数量16
7.3查询主机内存16
7.4查询使用的端口17
8Apache配置中遇到的问题17
8.1couldnotbindtoaddress17
1Apache软件下载
安装apache软件最好使用官网上面最新稳定的发布包,目前安装本人下载是的httpd-2.2.18的版本,该版本算是比较稳定的。
下载地址:
http:
//httpd.apache.org/
有一个2.3.11-beta(released2011-03-07)发布版本,考虑稳定性我还是选择2.2.18(released2011-05-11)版本。
下载到的源码格式一般是.tar.gz格式的文件,把文件上传到服务器上,用以下命令解压:
gzip–dfilename.tar.gz
上面的命令会解压得到一个filename.tar文件,再用以下命令解压tar文件,生成apache的源文件目录:
tarxvffilename.tar
2Apache软件升级
升级的第一步是阅读源代码目录中的发布公告(releaseannouncement)和CHANGES文件以寻找可能会对你的站点产生影响的变化。
如果主板本号的变化(例如1.3→2.0或2.0→2.2)表明编译时和运行时的配置发生了重大变化,需要手动调整,所有模块也需要升级以兼容新版本的模块API。
小幅度的版本升级(例如:
2.2.55→2.2.57)很容易。
makeinstall的过程不会改写任何已经存在的文档、日志、配置文件。
此外,开发者也会尽量兼容上一版本的configure选项、运行时配置、模块API。
大多数情况下,你将能够使用与上一版本完全相同的configure命令行和运行时配置,而你原来的所有模块也将正常工作。
如果你保存了上一次安装后build子目录中的config.nice文件,升级将更加平滑。
这个文件精确地保存了所有对目录树进行配置的configure命令行。
你只需要将config.nice文件复制到新的源代码目录树的根文件夹并进行你希望的修改后,然后运行下面的命令即可完成升级:
$./config.nice
$make
$makeinstall
$PREFIX/bin/apachectl-kgraceful-stop
$PREFIX/bin/apachectl-kstart
建议:
你应该总是在将新版本的Apache投入正式运行前,对这个新版本进行足够的、针对你的实际运行环境的测试。
比如,你可以使用一个不同的--prefix设置将新版本安装在一个不同的目录,并使用Listen指令在一个不同的端口监听。
经过一段时间的测试以发现可能存在的问题,然后再做出最后的决定。
3Aapche软件安装
安装apache其实步骤很简单,只是有些细节需要注意,下面的安装步骤是本人的详细总结;在看步骤之前请要学习的朋友先看看自己安装apache服务的用途,本人安装apache服务的主要用途就是做一个网厅前置机的分发、安全过滤、负载均衡服务器,其角色起着中间转发作用。
3.1步骤1
在apache的源文件目录下,执行以下命令,对apache进行编译前的环境检查,生成优化的编译文件选项。
其中的--prefix=/apache/local/apache是指定安装目录的,可以根据实际情况来指定。
完整命令如下:
./configure--prefix=/apache/local/apache82--enable-so--with-mpm=worker--enable-mods-shared='deflatealiascacheheadersproxyproxy_balancerproxy_connectproxy_ftpproxy_httprewrite'
注意:
proxy_ajp、proxy_scgi和dumpio在前置系统暂不需要,如有其他需要可以加入。
说明:
根据自己所搭建服务器的要求,只需要选择性加载需要的模块用enable-mods-shared来区分值用单引号包含,模块名用空格分隔。
详细的模块可以参考Apache2.2中文手册.chm
--enable-so:
有两种使用模块的方法:
一是静态连接进核心,二是作为DSO模块动态加载;如果编译中包含任何DSO模块,则mod_so会被自动包含进核心。
如果希望核心能够装载DSO,但不实际编译任何DSO模块,则需明确指定"--enable-so=static";如果写成--enable-so意味着是作为DSO模块动态加载。
--with-mpm:
Apache2.x支持插入式并行处理模块,称为多路处理模块(MPM)。
在编译Apache时你必须选择也只能选择一个MPM,这里有几个针对非UNIX系统的MPM:
beos,mpm_netware,mpmt_os2,mpm_winnt。
对类UNIX系统,有几个不同的MPM可供选择,他们都会影响到httpd的速度和可伸缩性:
∙workerMPM使用多个子进程,每个子进程中又有多个线程。
每个线程处理一个请求。
该MPM通常对高流量的服务器是一个不错的选择。
因为它比preforkMPM需要更少的内存且更具有伸缩性。
∙preforkMPM使用多个子进程,但每个子进程并不包含多线程。
每个进程只处理一个链接。
在许多系统上它的速度和workerMPM一样快,但是需要更多的内存。
这种无线程的设计在某些情况下优于workerMPM:
它可以应用于不具备线程安全的第三方模块(比如php3/4/5),且在不支持线程调试的平台上易于调试,而且还具有比workerMPM更高的稳定性。
关于MPM的更多内容,请参考其文档。
注意:
该操作需要花费较长时间,完成后再执行以下命令进行编译:
3.2步骤2
进入httpd-2.2.18的目录,
cdhttpd-2.2.18
Make即可进行编译环节
3.3步骤3
步骤2完成后,在同一目录下进行安装,命令:
Makeinstall
安装完成后即可进行相关的服务配置。
4Apache服务配置
Apache的配置主要是在apache的配置目录下的httpd.conf文件,按照我们安装的目录,该文件位于/apache/local/apache/conf/httpd.conf,在运行apache之前,需要先对该配置文件做些修改,才能正常启动apache。
4.1Httpd.conf配置
4.1.1修改运行用户
找到该配置文件,搜索User和Group并按以下修改:
找到user和group的配置,修改如下:
Usernobody
Groupnobody
不修改会提示的错误信息:
httpd:
badgroupnamedaemon
解决次问题有两种方法:
4添加一个名为daemon的aix操作系统用户和群组
4vi/usr/local/apache2/conf/httpd.conf修改"Userdaemon"行数据为"Usernobody","Groupdaemon"行数据为"Groupnobody"
执行命令:
/usr/local/apache2/bin/apachectl-kstart以便启动apacheweb服务器
4.1.2修改服务端口号
因为80端口的监听需要root权限,所以把端口改成8080或其他可用端口。
找到配置项Listen并修改。
Listen8080
4.1.3加载需要的模块
mod_wl_22.so(注意该模块apache是不会生成的)是weblogic和apache的插件,可以从weblogic的安装目录下找到。
对就不同的apache会有不同的插件文件,需要选用正确的插件才能正常工作。
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_http_modulemodules/mod_proxy_http.so
LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so
LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so
LoadModuleweblogic_modulemodules/mod_wl_22.so
如果没有以上的模块文件生成,也可以使用单个生成的方法来生成这些so文件。
在apache的源文件目录下,执行命令如下:
/apache/local/apache2/bin/apxs-i-a-c./mod_proxy.cproxy_util.c
/apache/local/apache2/bin/apxs-i-a-c./mod_proxy_connect.c
/apache/local/apache2/bin/apxs-i-a-c./mod_proxy_ftp.c
/apache/local/apache2/bin/apxs-i-a-c./mod_proxy_http.c
/apache/local/apache2/bin/apxs-i-a-c./mod_rewrite.c
4.2httpd-vhosts.conf配置
增加虚拟机配置,修改ServerName,WebLogicCluster,WebLogicHost,WebLogicPort等配置,改成真正提供服务的地址和端口,注意WebLogicCluster与WebLogicHost,WebLogicPort不能同时开启,WebLogicHost,WebLogicPort是配置的单server的情况,WebLogicCluster是配置的集群的情况。
为了让配置看起来更清晰,虚拟机的配置可以写到extra目录下的httpd-vhosts.conf文件里面,然后在httpd.conf里面用
Includeconf/extra/httpd-vhosts.conf语句把配置文件包含进来。
82> #ServerName218.202.0.240 ServerName10.168.27.221 #ErrorDocument403http: //10.168.31.131: 40009/err.htm ErrorLog"logs/portal_error_log" #CustomLog"|/apache/local/apache/bin/rotatelogs/apache/local/apache/logs/ics_%Y%m%d.log"86400combined HeaderaddMyHeader"%D%t" #WebLogicCluster10.168.31.131: 40001,10.168.31.131: 40002,10.168.31.131: 40003,10.168.31.131: 40004 WebLogicHost10.168.31.131 WebLogicPort40009 WLCookieNameICS_JSESSIONID MatchExpression/ MatchExpression/* MatchExpression/*.* RewriteCond%{REQUEST_URI}^/.*$ RewriteCond%{QUERY_STRING}! ^$ RewriteCond%{REQUEST_URI}! ^/ExceptionInfo.htm.*$ RewriteRule^/(.*)$/ExceptionInfo.html[R=301,L] RewriteCond%{QUERY_STRING}^.*\<.*$[OR] RewriteCond%{QUERY_STRING}^.*\%3c.*$[OR] RewriteCond%{QUERY_STRING}^.*\%3C.*$[OR] RewriteCond%{QUERY_STRING}^.*\(.*$[OR] RewriteCond%{QUERY_STRING}^.*\{.*$[OR] RewriteCond%{QUERY_STRING}^.*\%7b.*$[OR] RewriteCond%{QUERY_STRING}^.*\%7B.*$[OR] RewriteCond%{QUERY_STRING}^.*script.*$[NC] RewriteCond%{QUERY_STRING}^.*[<()>].*$[OR] RewriteRule^/(.*)$/ExceptionInfo.html[R=301,L] RewriteRule.*$-[F,L] RewriteCond%{QUERY_STRING}^.*\t.*$ RewriteRule^/(.*)$/ExceptionInfo.html[R=301,L] RewriteCond%^(TRACE|TRACK)
4.3httpd-mpm.conf配置
不同工作模式下的线程配置如下:
在安装的时候可以指定apache的工作模式,一般在unix下使用的是prefork工作模式,也可以通过在configure时指定apache的工作模式,在不同的工作模式下,对应的配置也是不同的,apache2.2下有专门的工作模式的配置文件httpd-mpm.conf。
可以用以下的命令查看apache使用的工作模式:
Httpd–l或者apchectl–l
在输出的结果中如果有worker.c,则说明是worker工作模式,如果有prefork.c则说明是prefork工作模式。
(1)Worker工作模式对应的配置段为
ServerLimit240
StartServers50
MaxClients12000
MinSpareThreads75
MaxSpareThreads200
ThreadsPerChild50
MaxRequestsPerChild1000
说明如下:
ServerLimit:
服务数量限制
StartServers为初始的启动进程数
MaxClients为最大的可连接客户端数
MinSpareThreads为最少的空闲线程数
MaxSpareThreads为最大的空闲线程数
ThreadsPerChild为每个进程的子线程数
MaxRequestsPerChild为每个线程可以处理的请求数,处理数达到这个数目时,会自动销毁,重新创建一个线程,为0时不限制
(2)prefork工作模式对应的配置段为
StartServers5
MinSpareServers5
MaxSpareServers10
MaxClients150
MaxRequestsPerChild0
说明:
StartServers为初始的启动进程数
MinSpareThreads为最少的空闲进程数
MaxSpareThreads为最大的空闲进程数
MaxClients为最大的可连接客户端数
MaxRequestsPerChild为每个线程可以处理的请求数,处理数达到这个数目时,会自动销毁,重新创建一个进程,为0时不限制。
完成以上的三项配置后即可进行apache服务启动检查服务运行情况
5Apache服务起停
启动服务:
apachctl–kstart
停止服务:
apachectl–kstop
还有优雅重启等操作,详细区别请参考Apache2.2中文手册.chm
启动成功后在浏览器中输入http:
//10.168.27.221:
82测试服务是否可以访问。
6Apache服务查看
Apache队列查看与统计
netstat-na|grepEST|grep8080|more
上面的命令输出以下格式的信息:
Recv-QSend-Q
tcp40148310.168.27.221.8080222.172.216.188.3684ESTABLISHED
tcp40010.168.27.221.8080221.213.33.58.4985ESTABLISHED
tcp40010.168.27.221.8080221.213.33.58.4986ESTABLISHED
tcp40010.168.27.221.8080221.213.33.58.4987ESTABLISHED
我们主要关注一下第二列和第三列的信息,第二列表示的是接收队列,第三列表示的是发送队列,如果数字不为0,说明还有这么多字节的数据没有接收或发送完成。
在跟踪的过程中发现,如果接收队列有比较多的没有接收完成的数据的话,会导致前置机接入变得缓慢,如果严重的话,可能需要重新起动apache应用。
而发送队列有一些数据没有传送完成的话,好像没有太大的影响。
使用以下命令可以统计当前的连接数:
netstat-na|grepEST|grep8080|wc-l
7Apache相关查询
7.1linux下如何查看apache的请求进程数
在linux下如何查看apache的请求进程数:
要想在Linux系统下查看Apache的负载情况,最简单有效的方法就是查看ApacheServerStatus,在没有开启ApacheServerStatus的情况下,或安装的是其他的WebServer,比如Nginx的时候,可以使用下面的命令查看。
#ps-ef|grephttpd|wc-l
1388
统计httpd进程数,这个请求会启动一个进程,使用于Apache服务器。
表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整,我这组服务器中每台的峰值曾达到过2002。
#netstat-nat|grep-i"80"|wc-l
4342
netstat-an会打印系统当前网络链接状态,而grep-i“80″是用来提取与80端口有关的连接的,wc-l进行连接数统计。
最终返回的数字就是当前所有80端口的请求总数。
#netstat-na|grepESTABLISHED|wc-l
376
netstat-an会打印系统当前网络链接状态,而grepESTABLISHED提取出已建立连接的信息。
然后wc-l统计。
最终返回的数字就是当前所有80端口的已建立连接的总数。
#netstat-n|awk‘/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}’
FIN_WAIT_1286
FIN_WAIT_2960
SYN_SENT3
LAST_ACK32
CLOSING1
CLOSED36
SYN_RCVD144
TIME_WAIT2520
ESTABLISHED352
这条语句是在张宴那边看到,据说是从新浪互动社区事业部技术总监王老大那儿获得的,非常不错。
返回参数的说明如下:
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数。
7.2查询cpu数量
1、aix和hp上面;UNIX上查看CPU个数和内存
lsdev-C|grepProcess|wc–l
nmon:
后的结果是
目前的cpu都是双核,上面的cpu显示的双核数量是20,CPU个数为10个。
2、solaris上面:
psrinfo-v|grep"Statusofprocessor"|wc–l
7.3查询主机内存
使用topas命令:
如上图红色圈显示部分,内存为65535M,约64G
7.4查询使用的端口
查看8080端口启动没启动
netstat-an|grep8080
8Apache配置中遇到的问题
8.1couldnotbindtoaddress
Permissiondenied:
make_sock:
couldnotbindtoaddress[:
:
]:
82Apache虚拟主机
想建立一个测试用的虚拟主机,遇到了这个问题:
[u@H/apache/local/apache82/bin]$apachectl-kstart
Warning:
DocumentRoot[/apache/local/apache82/docs/dummy-]doesnotexist
Warning:
DocumentRoot[/apache/local/apache82/docs/dummy-]doesnotexist
(13)Permissiondenied:
make_sock:
couldnotbindtoaddress[:
:
]:
82
(13)Permissiondenied:
make_sock:
couldnotbindtoaddress0.0.0.0:
82
nolisteningsocketsavailable,shuttingdown
Unabletoopenlogs
解决办法:
semanageport-l|grephttp
semanageport-a-thttp_port_t-ptcp82
这个两个命令一是查看,一个是添加,添加完再查看一遍,如果有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 apache 安装 配置 详细 操作
