1. 程式人生 > >Linux下安裝Apache httpd

Linux下安裝Apache httpd

                     
 

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