您的位置:首页 > 职场人生

搭建WEB服务详解(二)

2010-07-24 14:13 405 查看
四.[/b]Web[/b]站点的典型应用[/b][/b]
1.[/b]测试[/b]httpd[/b]服务器的性能([/b]httpd[/b]服务自带了一个压力测试工具[/b]ab,[/b]用于检测[/b]web[/b]站点的性能表现)[/b][/b]
命令格式:[/b][/b]
ab [-q] –c [/b]并发请求数[/b] –n [/b]总的请求数[/b] [/b]
[http://][/b]域名[/b][:[/b]端口[/b]]/[/b]路径[/b][/b]
[][/b]中的为可选的,使用[/b]-q[/b]选项时,将不显示测试进度信息;当测试的目标是[/b]web[/b]站点的根路径时,最后的“[/b]/[/b]”不能少[/b][/b]
①[/b]使用[/b]ulimit[/b]命令修改最大文件数限制[/b][/b]
在[/b]RHEL5[/b]中,默认允许打开的最大文件数为[/b]1024[/b]。由于使用[/b]AB[/b]测试工具时可能需要同时打开更多的文件,因此需要使用[/b]ulimit[/b]命令突破这个限制。[/b]ulimit[/b]是一个[/b]bash[/b]内部命令,可以对[/b]Shell[/b]进程使用的系统资源进行限制。[/b][/b]
[root@localhost ~]# ulimit -a |grep "open fils"[/b]
[root@localhost ~]#[/b]
[root@localhost ~]# ulimit -a |grep "open files"[/b]
open files (-n) 1024[/b]
[root@localhost ~]# ulimit -n 10000[/b]
[root@localhost ~]# ulimit -a |grep "open files"[/b]
open files (-n) 10000[/b]
②[/b]执行[/b]ab[/b]命令进行压力测试(通过命令输出的结果判断[/b]web[/b]服务器的响应情况及性能表现,如查看[/b]cpu[/b]、内存等信息)[/b][/b]
/usr/local/apache2/bin/ab -q -c 2000 -n 4000 www.haha.com/[/b]
总结:[/b][/b]
⑴[/b]httpd[/b]服务的目录结构[/b](在[/b]httpd[/b]软件的安装目录“[/b]/usr/local/apache2[/b]”中,包括了运行[/b]web[/b]服务器所需要的执行程序、配置文件、日志文件,帮助手册等所有内容,该目录被称为[/b]Apache[/b]服务器的根目录)[/b][/b]
[root@localhost ~]# ls /usr/local/apache2/[/b]
bin cgi-bin error icons lib man modules[/b]
build conf htdocs include logs manual[/b]

conf[/b]目录:保存了[/b]Apache[/b]服务器的配置文件,其中[/b]httpd.conf[/b]是它的主配置文件。[/b][/b]


bin[/b]目录:包括了运行和管理[/b]web[/b]服务所需要的执行程序[/b][/b]
[/b]其中:[/b][/b]
Ø httpd[/b]是服务器的执行程序[/b][/b]
Ø apachectl[/b]是服务程序的启动脚本[/b][/b]


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