日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache网站服务

發布時間:2024/7/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache网站服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Apache 下載地址: http://mirror.bit.edu.cn/apache/httpd/
相關軟件下載地址:http://mirror.bjtu.edu.cn/apache/apr/apr
         http://mirror.bjtu.edu.cn/apache/apr/apr-util
=============Apache 簡介: 進程技術,高資源消耗,但是穩定;

? ? ?

? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? MPM (multi process moudles): 多處理模塊;
   ? Apache工作模式:
    進程池(prefork):適合動態頁面,總是提前準備好進程等待訪問者,一個進程對應一個web訪問請求;
    線程池(worker,event):適合靜態頁面,比如先開啟5個進程,每個進程里開啟100線程,一個線程接待一個web訪問請求;?? ?

? ? ? ? ? ? ? ?

? ? ? ? ? ? ?? ?httpd------->prefork ---->默認
    ?httpd.worker------->worker
    ?httpd.event-------->event
    如果使用簡化安裝的Apache,如何改變它的MPM工作模式?

? ? ? ? ? ? ? ??

? =================LAMP平臺概述:

? ? ? ? ? ?

? ?=========Apache中的進程與線程: ?

? ? ? ? ? ? ??

?

1》安裝Apache軟件:
    rpm 和 yum 安裝:
  1> yum install httpd
    service httpd restart ? ? ??

? ? ? ? ? ? ??

? ? ? ? ? ??? 啟動服務的腳本------》運行/usr/sbin/httpd----》調用/etc/httpd/conf/ httpd.conf;?

? ? ? ? ? ? ? ??

? ? ? ? ? ??? 真正提供httpd服務的程序的名字;

? ? ? ? ?? ?2>源碼安裝:
      ==下載軟件包:
        http://mirror.bit.edu.cn/apache/httpd/
        http://mirror.bjtu.edu.cn/apache/apr/apr
        http://mirror.bjtu.edu.cn/apache/apr/apr-util

      ==安裝軟件:
        yum -y install gcc autoconf automake make pcre pcre-devel openssl openssl-devel

? ? ? ? ? ? ? apr:
      ./configure
      make && make install
    apr-util:
      ./configure --with-apr=/usr/local/apr
      make && make install
    httpd:
    ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-rewrite --with-mpm=worker --with-suexec-bin --with-apr=/usr/local/apr
    make && make install
    可以通過./configure --help 命令來查看腳本支持的所有選項:
      --prefix 指定Apache httpd程序的安裝主目錄
      --enable-so 開啟模塊化功能,支持DSO(動態共享對象)
      --enable-ssl 支持SSL加密
      --enable-rewrite 支持地址重寫
      --with-mpm 設置Apache 工作模式
      --with-suexec-bin 支持SUID,SGID
      --with-apr 指定apr程序絕對路徑?

2》修改配置文件:
  主配置文件:/etc/httpd/conf/httpd.conf:
  簡單配置:

? ? ? ? ?

? ? ??? 出現上述提示說明沒有標準的域名,需要指定:
   ServerName:www.chw.com:80 -----276行》打開配置,去掉注釋,然后修改; ? ? ??

? ? ?? 配置文件詳情解析:Apache服務的主配置文件主要由指令以及容器組成,容器使用<容器名稱>開始,以</容器名稱>結尾,容器的指令一般僅在容器內有效:
    1>SeverRoot指令:
      設置軟件的安裝主目錄,如果采用源碼安裝,則默認路徑為/usr/local/apache2;
    2>Listen指令:
       設置服務器監聽的IP以及端口號,默認監聽服務器本機所有的IP地址的80端口,語法格式為:Listen[IP地址:]端口[協議],其中IP地址與協議為可選項, ? ? ? ? ? ? ? ? ? ?默認監聽所有的IP ,使用TCP協議,一個配置文件可以多次使用Listen指令來開啟多個端口;
    3>LoadModule指令:
      如果希望Apache動態加載模塊,需要在編譯Apache時通過enable-so將mod_so以靜態方式編譯到Apache核心模塊中,此指令的作用就是加載模塊,語法 ? ? ? ? ? ? ? ? 格式為:LoadModule 模塊 模塊文件名稱,其中模塊文件一般位于ServerRoot目錄下的modules目錄中;
    4>LoadFile指令:
      功能類似于上述指令,區別在于后者可以通過絕對路徑加載modules目錄下的模塊文件;

? ? ? ? ? ? ??5>ServerAdmin指令:
       ?當網站出現故障時,需要為客戶提供一個可以幫助解決問題的郵件地址,ServerAdmin指令的作用就是提供這樣的郵件地址;
    6>ServerName指令:
       設置服務器本機的主機名稱以及端口,對URL地址的重定向很重要;
    7>DocumentRoot指令:
        設置WEB服務隊客戶端開放可見的文檔根目錄,也就是客戶端訪問網站的根目錄;
    8>ErrorLog指令:
       ? ??定位服務器錯誤日志的位置,默認使用相對路徑;
    9>ErrorLogFormat指令:
        設置錯誤日志的格式;
    10>CustomLog指令:
       ? ?設置客戶端的訪問日志文件名以及日志格式,格式為:CustomLog 文件名 格式;
    11>LogFormat指令:
       ??描述用戶日志文件格式,一般我們會為此指令設置的日志格式創建別名,然后通過CustomLog指令調用該日志格式別名;

? ? ? ? ? ? ? ?12>Include指令:
       ?允許Apache在主配置文件中加載其他的配置文件;
    13>Options指令:
       為特定目錄設置選項,選項可以設置為None,代表不啟用任何額外的功能,也可以使用如下常用選項:
        All:開啟除MultiViews之外的所有選項;
        ExecCGI:允許執行Options指定目錄下的所有CGI腳本;
        FollowSymlinks:允許Options指定目錄下的文件鏈接到目錄外的文件或目錄;
        Indexes:如果與URL對應的Options目錄下找不到DirectoryIndex指定的首頁文檔,則服務器將會把當前目錄的所有文件索引出來;
    14>Order指令:
        控制默認訪問狀態以及Allow與Deny的次序,如果使用Order deny,allow,則先檢查拒絕,再檢查允許,當拒絕與允許有沖突時,允許優先,默認規則為 ? ? ? ? ? ? ? ? ? 允許;如果使用Order allow ,deny,則先檢查允許,再檢查拒絕,當允許與拒絕有沖突時,拒絕優先,默認規則為拒絕;

? ? ? ? ? ? ? ? ? ? ? ??? ?具體案例:
          Order deny,allow
          Deny from all 拒絕所有;

          Order Allow,Deny
          allow from all 允許所有;

          Order Allow,Deny
          allow from 192.168.1.2 除此IP外拒絕所有;

          Order Allow,Deny
          allow from 192.168.1.2
          Deny from All 拒絕所有人訪問;

          Order Deny,Allow
          Deny from all
          allow from 192.168.1.2?除此IP外拒絕所有;

? ? ? ? ? ? ? ? ? ? ?? 15>IfDefine容器:
          此容器封裝的指令僅在啟動Apache時測試條件為真才會被處理,測試條件需要在啟動Apache時通過-D定義:
        實例:
          service httpd -D UseCache -D MemCache restart

        <IfDefine MemCache>
          LoadModule mem_cache_module modules/mod_mem_cache.so
        </IfDefine>

        <IfDefine UseCache>
          LoadModule cache_module modules/mod_cache.so
        </IfDefine> ? ??

? ? ? ? ? ? ? ? ?16>IfModule容器:
        此容器封裝僅在條件滿足時才會處理的指令,根據指定的模塊是否已被加載來決定條件是否滿足;
      案例:
        <IfModule unixd_module>
        User daemon
        Group daemon
        </IfModule>
     17>Directory容器:
        該容器內 指令僅應用于特定的文件系統目錄,子目錄以及目錄下的內容;
     18><DirectoryMatch>
        此指令類似于上述指令,但可以直接使用正則表達式匹配,無須使用~符號;
     19>Files容器:
        容器內的指令僅應用于特定的文件,它可以使用~匹配正則表達式;
     20>FilesMatch容器:
        僅使用正則表達式匹配需要的文件,;
     21>Location容器:
        容器內定義的指令僅對特定的URL有效,語法格式為:<Location URL-path|URL> </Location>,如果需要使用正則表達式,可以用~符號來匹配;

? ? ? ? ? ? ? ??? 22>LocationMathch容器和VirtualHost容器:
        僅使用正則表達式來匹配URL,等同于使用了~符號匹配的Location;

?

? =============虛擬主機應用案例:
    虛擬主機是在一臺服務器上同時運行多個WEB業務,Apache服務支持基于域名以及基于IP的虛擬主機類型,但是更多時候我們更喜歡基于域名的虛擬主機,服務器可以根據客戶端訪問HTTTP的頭部信息來實現網站的分離解析,客戶端可以使用不同的域名訪問位于同一IP地址的服務器資源;

1》修改主配置文件:
    將主配置文件中的Include conf/extra/httpd-vhosts.conf語句開啟,Include指令將會讀取次配置文件的內容作為主配置文件的一部分,并且兩個虛擬主機的端口 ? ? 也應該不同,所以主配置文件應該監聽兩個端口;

? ? ? ? ? ? ? ?

2》修改次配置文件:?

? ? ? ? ??

3》為兩個不同的虛擬主機創建各自的頁面根目錄:
    當訪問這兩個網站時,如果沒有合法的DNS服務器,可以通過修改hosts文件來進行域名解析,如果需要進行基于IP 地址的虛擬主機,只需將*修改為固定的IP地址即可,多個虛擬主機需要使用多個VirtualHost封裝;

?

?

? ? # prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
當上述的數值賦值不當時,刷新服務時的提醒?

? ? ? ??

? *******注意:
? ? linux內核默認情況下一個進程可以打開的文件的數量是1024;

? ? ? ? ?

? 可以使用命令來修改這個值:
    ulimit -n 25535 只能暫時有效;
    默認情況下Apache編譯進來了哪些模塊:

? ? ? ? ? ? ??

3》啟動服務,配置防火墻規則或關閉防火墻:
    service httpd restart
    iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    service iptables save ? ??

轉載于:https://www.cnblogs.com/xiaocheche/p/7613317.html

總結

以上是生活随笔為你收集整理的Apache网站服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。