生活随笔
收集整理的這篇文章主要介紹了
搭建WEB服务详解(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
四. Web 站點的典型應用 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
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 you@example.com
// 設置 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 主配置文件中來,便于獨立維護
② 區域設置(其設置內容只作用于區域內部,而不會在全局或其他區域中生效)
2???? 目錄區域(主要用于為特定的目錄設置訪問控制權限)
如:對系統跟目錄“ / ”的設置
<Directory />
??? Options FollowSymLinks
??? AllowOverride None
??? Order deny,allow
??? Deny from all
</Directory>
2???? 虛擬主機區域
如:
<VirtualHost 172.16.100.5>
??????? ServerName www.haha.com
??????? DocumentRoot /home/haha/public_html/
</VirtualHost>
轉載于:https://blog.51cto.com/liuwenbing/358153
總結
以上是生活随笔 為你收集整理的搭建WEB服务详解(二) 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。