Linux下安裝Apache httpd
阿新 • • 發佈:2018-12-20
httpd是Apache超文字傳輸協議(HTTP)伺服器的主程式。它被設計為一個獨立執行的後臺程序,它會建立一個處理請求的子程序或執行緒的池對外提供服務。httpd支援基於 虛擬主機,以及基於HOST、IP、PORT實現虛擬主機,反向代理,負載均衡,路徑別名,使用者認證,basic,支援第三方模組等眾多特性。本文主要描述了Linux下httpd的安裝以及相關基本用法。
一、httpd的安裝
演示環境及版本 # cat /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m # uname -r 2.6.32-431. el6.x86_64檢視httpd是否已安裝 # rpm -qa httpd使用yum列出相關httpd安裝檔案,此處為本地yum源 # yum list |grep httpd httpd.x86_64 2.2.15-29.el6.centos local_server httpd-devel.i686 2.2.15-29.el6.centos local_server httpd-devel.x86_64 2.2.15-29.el6.centos local_server httpd-manual.noarch 2.2.15-29.el6.centos local_server httpd-tools.x86_64 2.2.15-29.el6.centos local_server 安裝及驗證httpd # yum -y install httpd # rpm -qa |grep httpd httpd-tools-2.2.15-29.el6.centos.x86_64 httpd-2.2.15-29.el6.centos .x86_64使用rpm方式尋找配置檔案 # rpm -qc httpd 常用的配置檔案: /etc/httpd/conf.d/*.conf ###輔助配置檔案 /etc/httpd/conf/httpd.conf ###主配置檔案 /etc/sysconfig/httpd ###httpd工作模式配置檔案使用rpm方式檢視安裝位置及生成的二進位制檔案 # rpm -ql httpd 主程式: /usr/sbin/httpd MPM模式預設 /usr/sbin/httpd.event /usr/sbin/httpd.worker使用rpm方式檢視包的幫助檔案 # rpm -qd httpd 啟動指令碼:/etc/rc.d/init.d/httpd日誌檔案目錄: /var/log/httpd access_log:訪問日誌 error_log: 錯誤日誌站點文件目錄:(站點根目錄) /var/www/htmlhttpd的工作目錄:/var/www
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
二、httpd的工作模式
1、MPM: Multipath Processing Module(多路處理模組) prefork: 多程序模型,每個程序響應一個請求;穩定性好,但併發能力有限;預先生成多個空閒程序; 由於prefork使用select()系統呼叫,所以最大併發不能超過1024; worker:多程序模型,每個程序可生成多個執行緒,每個執行緒響應一個請求;預先生成多個空閒執行緒; event:一個程序直接響應n個請求;可同時啟動多個程序; httpd-2.2: 測試使用; ### Author : Leshami httpd-2.4: 可生產使用; ### Blog : http://blog.csdn.net/leshami2、幾種工作方式的切換prefork模式下 # service httpd start Starting httpd: [ OK ] # ps -ef|grep httpd |grep -v grep ###一個主程序,生成了8個空閒程序 root 6413 1 0 09:40 ? 00:00:00 /usr/sbin/httpd apache 6416 6413 0 09:40 ? 00:00:00 /usr/sbin/httpd apache 6417 6413 0 09:40 ? 00:00:00 /usr/sbin/httpd apache 6418 6413 0 09:40 ? 00:00:00 /usr/sbin/httpd apache 6419 6413 0 09:40 ? 00:00:00 /usr/sbin/httpd apache 6420 6413 0 09:40 ? 00:00:00 /usr/sbin/httpd apache 6421 6413 0 09:40 ? 00:00:00 /usr/sbin/httpd apache 6422 6413 0 09:40 ? 00:00:00 /usr/sbin/httpd apache 6423 6413 0 09:40 ? 00:00:00 /usr/sbin/httpd # ss -tulpn |grep httpd tcp LISTEN 0 128 :::80 :::* users:(("httpd",6413,4),("httpd",6416,4),("httpd",6417,4),("httpd",6418,4), ("httpd",6419,4),("httpd",6420,4),("httpd",6421,4),("httpd",6422,4),("httpd",6423,4) # netstat -nltp|grep 80 tcp 0 0 :::80 :::* LISTEN 6413/httpd worker工作方式 # cat /etc/sysconfig/httpd|grep -v ^# HTTPD=/usr/sbin/httpd.worker # service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [[email protected] ~]# ps -ef|grep httpd|grep -v grep root 2261 1 0 17:47 ? 00:00:00 /usr/sbin/httpd.worker apache 2264 2261 0 17:47 ? 00:00:00 /usr/sbin/httpd.worker apache 2265 2261 0 17:47 ? 00:00:00 /usr/sbin/httpd.worker apache 2266 2261 0 17:47 ? 00:00:00 /usr/sbin/httpd.workerevent工作方式注,儘管2.2版本可以設定工作方式為httpd.event,生產環境不建議使用 # cat /etc/sysconfig/httpd|grep -v ^# HTTPD=/usr/sbin/httpd.event [[email protected] ~]# service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [[email protected] ~]# ps -ef|grep httpd|grep -v grep root 2402 1 0 17:49 ? 00:00:00 /usr/sbin/httpd.event apache 2405 2402 0 17:49 ? 00:00:00 /usr/sbin/httpd.event apache 2406 2402 0 17:49 ? 00:00:00 /usr/sbin/httpd.event apache 2407 2402 0 17:49 ? 00:00:00 /usr/sbin/httpd.event
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
三、httpd模組化特性
高度模組化 core + modules, DSO: Dynamic Shared Object模組目錄: /etc/httpd/modules: 符號連結檔案 /usr/lib64/httpd/modules模組的檢視 httpd -M ###檢視當前httpd程序的所有模組 httpd.event -M ###檢視event工作模式下的所有模組 更正@20160712 httpd.worker -M ###worker工作模式下的所有模組 更正@20160712 httpd.worker -l ###worker工作模式下的核心模組 更正@20160712模組的檢視示例 # httpd -M Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) auth_basic_module (shared) .............. # httpd.event -l Compiled in modules: core.c event.c http_core.c mod_so.c模組的動態裝載與解除安裝 # cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak # cat /etc/httpd/conf/httpd.conf |grep authn_alias_module LoadModule authn_alias_module modules/mod_authn_alias.so # vi /etc/httpd/conf/httpd.conf ###註釋mod_authn_alias.so模組 # cat /etc/httpd/conf/httpd.conf |grep authn_alias_module #LoadModule authn_alias_module modules/mod_authn_alias.so # service httpd restart # httpd -M ###使用該方式前後進行對比即可知道模組是否裝載或解除安裝
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
四、驗證httpd服務
# echo "<h1>orasrv1.xlk.com</h1>" >/var/www/html/index.html# curl http://192.168.21.10<h1>orasrv1.xlk.com</h1>
- 1
- 2
- 3