四.
Web
站点的典型应用
1.
测试
httpd
服务器的性能(
httpd
服务自带了一个压力测试工具
ab,
用于检测
web
站点的性能表现)
命令格式:
ab [-q] –c
并发请求数
–n
总的请求数
[http://]
域名
[:
端口
]/
路径
|
[]
中的为可选的,使用
-q
选项时,将不显示测试进度信息;当测试的目标是
web
站点的根路径时,最后的“
/
”不能少
①
使用
ulimit
命令修改最大文件数限制
在
RHEL5
中,默认允许打开的最大文件数为
1024
。由于使用
AB
测试工具时可能需要同时打开更多的文件,因此需要使用
ulimit
命令突破这个限制。
ulimit
是一个
bash
内部命令,可以对
Shell
进程使用的系统资源进行限制。
[root@localhost ~]# ulimit -a |grep "open fils"
[root@localhost ~]#
[root@localhost ~]# ulimit -a |grep "open files"
open files (-n) 1024
[root@localhost ~]# ulimit -n 10000
[root@localhost ~]# ulimit -a |grep "open files"
open files (-n) 10000
|
②
执行
ab
命令进行压力测试(通过命令输出的结果判断
web
服务器的响应情况及性能表现,如查看
cpu
、内存等信息)
/usr/local/apache2/bin/ab -q -c 2000 -n 4000 www.haha.com/
|
总结:
⑴
httpd
服务的目录结构
(在
httpd
软件的安装目录“
/usr/local/apache2
”中,包括了运行
web
服务器所需要的执行程序、配置文件、日志文件,帮助手册等所有内容,该目录被称为
Apache
服务器的根目录)
[root@localhost ~]# ls /usr/local/apache2/
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
|
conf
目录:保存了
Apache
服务器的配置文件,其中
httpd.conf
是它的主配置文件。
bin
目录:包括了运行和管理
web
服务所需要的执行程序
其中:
Ø
httpd
是服务器的执行程序
Ø
apachectl
是服务程序的启动脚本
htdocs
目录:是
Apache
服务器的网页文档的根目录
u
manual
目录:保存了
Apache
服务器的完整配置指南文
档,以
HTML
文件格式提供。
u
lib
目录
:
保存了运行
Apache
服务器所需的库文件
u
man
目录
:
保存了
httpd
、
apachectl
等程序的
man
帮助文
档
u
modules
目录:保存了提供给
Apache
服务器动态加载的
模块文件
u
logs
目录:保存
Apache
服务器的日志文件
通过熟悉这些目录的结构和功能,有助于对
web
服务器进行有效的管理。
⑵
在对
httpd.conf
文件进行修改后,建立使用
apachectl
命令
(
加“
-t
”选项
)
对内容进行语法检查,也可以使用“
httpd -t
”命令。如果没有错误,将会显示“
Syntax OK
”。
Ø
/usr/local/apache2/bin/apachectl -t
Ø
/usr/local/apache2/bin/httpd -t
⑶
启动
httpd
服务时出现的故障
①
无法确定
web
服务主机名
例:当
httpd
服务识别的主机名和服务器实际的主机名不一致时,可能导致启动
httpd
服务的时候反应非常缓慢,并且出现以下提示信息。
Httpd:apa_sockaddr_info_get() failed for www.server.com
Httpd:Could not reliably detemine the server’s fully qualified domain name,using 127.0.0.1 for ServerName
|
解决办法:
ü
在
httpd.conf
文件中,添加配置行“
ServerName www.server.com
”
,
指定完整的主机名。若没有“
ServerName
”配置行,
httpd
服务可能将“
127.0.0.1
”作为主机名。
ü
编辑“
/etc/sysconfig/network
”文件,修改主机名,如
“
HOSTNAME=www.server.com
”。
ü
编辑“
/etc/hosts
”文件,添加服务器的主机名、
IP
地址映射记录,如“
172.16.100.5 www.haha.com www
”。
②
TCP80
端口已被占用
例:从下面可以看出,
80
端口已被其它进程占用,只需要找到占用
80
端口的进程并关闭即可。一般是系统原有
RPM
方式安装的
httpd
服务进程造成的,只要停用原来的
httpd
服务,并将自启动状态设置为关闭即可。
[root@localhost ~]# /usr/local/apache2/bin/apachectl start
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
|
解决办法:
[root@localhost ~]# netstat -anpt|grep :80
tcp 0 0 :::80 :::* LIST EN 5001/httpd
[root@localhost ~]# killall -9 httpd
[root@localhost ~]# chkconfig --level 35 httpd off
[root@localhost ~]# /usr/local/apache2/bin/apachectl start
|
⑷
httpd.conf
配置文件
①
常用的全局配置项(这些全局配置项不包括在任何区域中,决定了
Apache
服务器的全局参数)
ServerRoot “/usr/local/apache2” //httpd
服务的根目录
Listen 80 //
设置
Apache
服务器监听的端口号,默认为
80
User daemon //
设置运行
httpd
进程时的用户身份
Group daemon //
设置运行
httpd
进程时的组身份
ServerAdmin [email protected]
//
设置
Apache
管理员的
E-mail
地址,可以在出现故障时通过此
E-mail
地址及时联系
Apache
服务器管理员
ServerName www.example.com
//
设置
Apache
服务器的完整主机名(
FQDN
名)
DocumentRoot "/usr/local/apache2/htdocs"
//
设置网页文档的根目录在系统中的实际路径
DirectoryIndex index.html index.php
//
设置网站的首页(索引页),可以设置多个文件,以空格分开,默认的首页文件为
index.html
ErrorLog "logs/error_log"
//
设置错误日志文件的路径和文件名,默认“
logs/error_log
”
LogLevel warn
//
设置记录日志的级别,默认为
Warn
(警告)
CustomLog "logs/access_log" common
//
设置
Apache
服务器中访问日志文件的路径和格式类型
PidFile logs/httpd.pid
//
设置保存
httpd
服务器程序进程号(
PID
)的文件,默认为“
logs/httpd.pid
”
Timeout 300
//
设置
web
服务器与浏览器之间网络连接的超时秒数
KeepAlive On
//
设置是否使用保持连接功能
Ø
为
On
时,客户机与服务器建立一次连接后可以请求传输多个文件,将提高服务器传输文件的效率
Ø
为
Off
时,表示不使用,客户机的每次连接只能从服务器请求返回一个文件,传输效率很低
MaxKeepAliveRequests 100
//
设置客户端每次连接允许请求相应的做大文件数,默认为
100
个。当
KeepAlive
设置为
On
时才生效
KeepAliveTimeout 15
//
设置保持连接的超时秒数,当客户机的两次相邻请求超过该设置值时需要重新进行连接请求,默认为
15
秒
Include conf/extra/httpd-vhosts.conf
//Include
:用于包含另一个配置文件的内容,可以将实现一些特殊功能的配置单独放到一个文件里,再使用
Include
配置项包含到
httpd.conf
主配置文件中来,便于独立维护
|
②
区域设置(其设置内容只作用于区域内部,而不会在全局或其他区域中生效)
²
目录区域(主要用于为特定的目录设置访问控制权限)
如:对系统跟目录“
/
”的设置
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
|
²
虚拟主机区域
如:
ServerName www.haha.com
DocumentRoot /home/haha/public_html/
|