apache虛擬主機部署


第1章   Apache虛擬主機的部署

Apr(可移植運行庫)主要實現為上層的應用提供一個可以跨多操作系統底層的接口庫。

Apr接口庫使用的目的是對應其他的服務的接口(api(程序接口))來使用,比如說php、tomcat、nginx。

Pcre是一個perl庫,是一個正則表達式庫,兼容perl的所有正則表達式,匹配字符使用的正則表達式,主要用於文本處理。

在一台服務器上發布多個網站,也稱為部署多個虛擬主機,虛擬主機的部署方法:

1. 單IP多個端口

2. 多ip單端口

3. 單個ip單個端口不同域名(應用廣泛)

啟動apache警告

 

沒有開啟80端口的域名監聽,解決方法:

Echo “ServerName localhost:80” >> /usr/local/apache/conf/httpd.conf

代表開啟監聽本地域名localhost

 

 

其中基於同一端口不同域名的方式在企業中得到廣泛的使用和應用,如下為基於一個端口不同域名,在一台Apache WEB服務器上部署多個網站,步驟如下:

(1)     創建虛擬主機配置文件httpd-vhosts.conf,該文件默認已存在,只需去掉httpd.conf配置文件中#號即可,如圖10-3所示:

 

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

#引用vhosts文件

<VirtualHost *:80>

    DocumentRoot "/usr/local/apache/htdocs/jf1"

    ServerName www.jf1.com

    ServerAlias  www.jf100.com www.jf1000.com www.jf10000.com

    ErrorLog "logs/jf1.com-error_log"

    CustomLog "logs/jf1.com-access_log" common

</VirtualHost>

 

<VirtualHost *:80>

    DocumentRoot "/usr/local/apache/htdocs/jf2"

    ServerName www.jf2.com

    ErrorLog "logs/jf2.example.com-error_log"

    CustomLog "logs/jf2.example.com-access_log" common

</VirtualHost>

配置hosts文件

Windows:C:\Windows\System32\drivers\etc

 

 

 

 

 

 

Linux /etc/hosts的配置文件

 

 

Hosts文件的作用是配置本地解析域名的,假設本地主機要訪問域名,Windows瀏覽器(首先訪問緩存數據)或者Linux工具首先訪問本地hosts,hosts文件里面寫了ip和域名對應解析關系。

Httpd-vhosts.conf參數詳解:

NameVirtualHost *:80     開啟虛擬主機,並且監聽本地所有網卡接口的80端口;

<VirtualHost *:80>                                                           虛擬主機配置起始;

    ServerAdmin support@jfedu.net                             管理員郵箱;

    DocumentRoot "/usr/local/apache2/htdocs/jf1"        該虛擬主機發布目錄;

    ServerName www.jf1.com                                                虛擬主機完整域名;

    ErrorLog "logs/www.jf1.com_error_log"                      錯誤日志路徑及文件名;

    CustomLog "logs/www.jf1.com_access_log" common  訪問日志路徑及文件名;

</VirtualHost>                                                                 虛擬主機配置結束。

設置項目的默認訪問目錄

<Directory "/test/jf1"> 

          Options Indexes MultiViews 

Options這個子句用來說明一些主要的設置,目前可以使用的設置有Indexes,Includes,FollowSymLinks,ExecCGI,MultiView,當然還有兩個最簡單的選擇就是None和All。

  None是禁止所有選擇,而All 允許上面的所有Options。一般我們主要關心的是Indexes 和FollowSymLinks。Indexes 是設定是否允許在目錄下面沒有index.html 的時候顯示目錄,而FollowSymLinks 決定是否可以通過符號連接跨越DocumentRoot。

          AllowOverride None 

 AllowOverride 定義是否允許各個目錄用目錄中的.htaccess(后面解釋)覆蓋這里設定的Options。它的選擇有Options,FileInfo,AuthConfig,Limit 或者它們的組合,當然還有None 和All。

          Order allow,deny 

它有兩種用法,即Order allow,deny 或者Order deny,allow。簡單地說,它用來設置是先執行deny 還是先執行allow,例如,Order deny,allow 意味着先看deny 行,再看allow 行,這樣如果deny from all 再allow from 202.112.58.0/24 后來的allow子句就會超越deny 而對202.112.58.x 打開訪問。

          Allow from all 

這兩個選項和Order 一起使用,Allow 允許某個地址來的連接請求,Deny 則禁止這個請求,例如在Order deny,allow 的情況下,Deny from all,Allow from 192.168.12.0/24 表示只有192.168.12.x 的用戶可以訪問這個目錄。

          DirectoryIndex index.html

    配置默認的網頁后綴

</Directory>

(2)     創建www.jf1.com及www.jf2.com發布目錄,重啟apache服務,並分別創建index.html頁面:

mkdir  -p  /usr/local/apache2/htdocs/{jf1,jf2}/

/usr/local/apache2/bin/apachectl restart

echo  "<h1> www.jf1.com  Pages</h1>" >/usr/local/apache2/htdocs/jf1/index.html

echo  "<h1> www.jf2.com  Pages</h1>" >/usr/local/apache2/htdocs/jf2/index.html

(3)     Windows客戶端設置Hosts映射,將www.jf1.comwww.jf2.com與192.168.111.131 IP進行映射綁定,映射的目的將域名跟IP進行綁定,在瀏覽器可以輸入域名,不需要輸入IP地址,綁定方法是在“C:\Windows\System32\drivers\etc”文件夾中,使用記事本編輯hosts文件,加入如下代碼,如圖10-4所示:

192.168.111.131  www.jf1.com

192.168.111.131  www.jf2.com

 

圖10-4 Windows主機Hosts配置

(4)     瀏覽器訪問www.jf1.com、www.jf2.com如圖10-5(a)、10-5(b)所示,至此Apache基於多域名虛擬主機配置完畢,如果還需添加虛擬主機,直接拷貝其中一個虛擬主機配置、修改WEB發布目錄即可:

圖10-5(a) www.jf1.com網站返回內容

圖10-5(b) www.jf2.com網站返回內容

Apache配置文件詳解

Apache的配置文件是Apache WEB難點,讀者需要掌握配置文件中每個參數的含義,才能理解並在日常運維中去解決Apache遇到的故障,如下為Apache配置文件詳解:

1)Global Environment---全局環境配置,決定Apache服務器的全局參數

2)Main server configuration---主服務配置,相當於是Apache中的默認Web站點,如果我們的服務器中只有一個站點,那么就只需在這里配置就可以了。

3)Virtual Hosts---虛擬主機,虛擬主機不能與Main Server主服務器共存,當啟用了虛擬主機之后,Main Server就不能使用了

 

ServerTokens OS                                      顯示服務器的版本和操作系統內核版本;在出現錯誤頁的時候是否顯示服務器操作系統的名稱,ServerTokens Prod為不顯示

ServerRoot  "/usr/local/apache2/"        Apache主配置目錄;服務啟動之后自動將目錄改變為當前目錄,在后面使用到的所有相對路徑都是想對這個目錄下

PidFile run/httpd.pid                         PidFile進程文件;這是系統識別一個進程的方法,系統中httpd進程可以有多個,但這個PID對應的進程是其他的父進程

Timeout 60                                            不論接收或發送,當持續連接等待超過60秒則該次連接就中斷;服務器與客戶端斷開的時間

KeepAlive Off                                            關閉持續性的連接;(因為每次連接都得三次握手,如果是訪問量不大,建議打開此項,如果網站訪問量比較大關閉此項比較好),修改為:KeepAlive On 表示允許程序性聯機

MaxKeepAliveRequests 100                    當KeepAlive設置為On的時候,該數值可以決定此次連接能夠傳輸的最大傳輸數量;

KeepAliveTimeout 65                                  當KeepAlive設置為On的時候,該連接在最后一次傳輸后等待延遲的秒數;

<IfModule prefork.c>                              Prefork MPM引擎配置段;

StartServers      8                              默認啟動Apache工作進程數;開始服務時啟動8個進程,最小空閑5個進程,最多空閑20個進程。

MinSpareServers   5                                  最小空閑進程數;

MaxSpareServers   20                             最大空閑進程數;

ServerLimit      4096                             Apache服務器最多進程數;服務器允許配置進程數的上限

MaxClients      4096                             每秒支持的最大客戶端並發;限制同一時刻客戶端的最大連接請求數量超過的要進入等候隊列。

MaxRequestsPerChild  4000                  每個進程能處理的最大請求數;每個進程生存期內允許服務的最大請求數量,0表示永不結束

</IfModule>

<IfModule worker.c>                                  Worker MPM引擎配置段;

StartServers        8                               默認啟動Apache工作進程數;

MaxClients         4000                           每秒支持的最大客戶端並發;

MinSpareThreads     25                            最小空閑線程數;

MaxSpareThreads     75                           最小空閑線程數;

ThreadLimit                                           每個子進程可能配置的線程上限

ThreadsPerChild     75                       每個進程啟動的線程數;

MaxRequestsPerChild  0                     每個進程能處理的最大請求數,0表示無限制;

</IfModule>

 

為Apache配置線程訪問,即每對WEB服務訪問啟動一個線程,這樣對內存占用率比較小。

ServerLimit服務器允許配置進程數的上限。

ThreadLimit每個子進程可能配置的線程上限

StartServers啟動兩個httpd進程,

MaxClients同時最多能發起250個訪問,超過的要進入隊列等待,其大小有ServerLimit和ThreadsPerChild的乘積決定

ThreadsPerChild每個子進程生存期間常駐執行線程數,子線程建立之后將不再增加

MaxRequestsPerChild每個進程啟動的最大線程數,如達到限制數時進程將結束,如置為0則子線程永不結束

LoadModule  mod_version.so               靜態加載apache相關模塊;

ServerAdmin support@jfedu.net            管理員郵箱,網站異常,錯誤信息會發生至該郵箱;

Listen 80                                               監聽的端口,如有多塊網卡,默認監聽所有網卡

123 150 LoadModule auth_basic_module modules/mod_auth_basic.so

......

201 LoadModule version_module modules/mod_version.so   啟動時加載的模塊 mod_access已經更名為mod_authz_host

Include conf.d/*.conf                                                                     加載的配置文件

DocumentRoot   "/usr/local/apache2/htdocs/"  Apache網站默認發布目錄;

User apache

Group apache                         啟動服務后轉換的身份,在啟動服務時通常以root身份,然后轉換身份,這樣增加系統安全

ServerName www.example.com:80                    默認是不需要指定的,服務器通過名字解析過程來獲得自己的名字,但如果解析有問題(如反向解析不正確),或者沒有DNS名字,也可以在這里指定IP地址,當這項不正確的時候服務器不能正常啟動。前面啟動Apache時候提示正在啟動 httpd:httpd: apr_sockaddr_info_get() failed forjustin httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1forServerName,解決方法就是啟動該項把www.example.com:80修改為自己的域名或者直接修改為localhost

 

<Directory "/data/webapps/www1">     設置/data/webapps/www1目錄權限;

    AllowOverride All

    Options -Indexes FollowSymLinks

    Order allow,deny

    Allow from all

</Directory>

AllowOverride                                      設置為None時,目錄中.htaccess 文件將被完全忽略,當指令設置為All時,.htaccess文件生效;.htaccess文件(或者"分布式配置文件")提供了針對目錄改變配置的文件, 以作用於此目錄及其所有子目錄。作為用戶,所能使用的命令受到限制。

Options -Indexes FollowSymLinks             禁止瀏覽目錄,去掉”-“,表示瀏覽目錄,常用於下載站點;

Order    allow,deny                              默認情況下禁止所有客戶機訪問;

Order   deny,allow                             默認情況下允許所有客戶機訪問;

Allow   from all                                允許所有客戶機訪問。

DirectoryIndex index.html index.html.var              指定所要訪問的主頁的默認主頁名字,默認首頁文件名為index.html

AccessFileName .htaccess            定義每個目錄下的訪問控制文件名,缺省為.htaccess

TypesConfig /etc/mime.types             用於設置保存有不同MIME類型數據的文件名

DefaultType text/plain           默認的網頁的類型

ErrorLog logs/error_log      錯誤日志存放的位置

LogLevel warn                  Apache日志的級別

 

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent     定義了日志的格式,並用不同的代號表示

第1章   Apache虛擬主機的部署

Apr(可移植運行庫)主要實現為上層的應用提供一個可以跨多操作系統底層的接口庫。

Apr接口庫使用的目的是對應其他的服務的接口(api(程序接口))來使用,比如說php、tomcat、nginx。

Pcre是一個perl庫,是一個正則表達式庫,兼容perl的所有正則表達式,匹配字符使用的正則表達式,主要用於文本處理。

在一台服務器上發布多個網站,也稱為部署多個虛擬主機,虛擬主機的部署方法:

1. 單IP多個端口

2. 多ip單端口

3. 單個ip單個端口不同域名(應用廣泛)

啟動apache警告

 

沒有開啟80端口的域名監聽,解決方法:

Echo “ServerName localhost:80” >> /usr/local/apache/conf/httpd.conf

代表開啟監聽本地域名localhost

 

 

其中基於同一端口不同域名的方式在企業中得到廣泛的使用和應用,如下為基於一個端口不同域名,在一台Apache WEB服務器上部署多個網站,步驟如下:

(1)     創建虛擬主機配置文件httpd-vhosts.conf,該文件默認已存在,只需去掉httpd.conf配置文件中#號即可,如圖10-3所示:

 

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

#引用vhosts文件

<VirtualHost *:80>

    DocumentRoot "/usr/local/apache/htdocs/jf1"

    ServerName www.jf1.com

    ServerAlias  www.jf100.com www.jf1000.com www.jf10000.com

    ErrorLog "logs/jf1.com-error_log"

    CustomLog "logs/jf1.com-access_log" common

</VirtualHost>

 

<VirtualHost *:80>

    DocumentRoot "/usr/local/apache/htdocs/jf2"

    ServerName www.jf2.com

    ErrorLog "logs/jf2.example.com-error_log"

    CustomLog "logs/jf2.example.com-access_log" common

</VirtualHost>

配置hosts文件

Windows:C:\Windows\System32\drivers\etc

 

 

 

 

 

 

Linux /etc/hosts的配置文件

 

 

Hosts文件的作用是配置本地解析域名的,假設本地主機要訪問域名,Windows瀏覽器(首先訪問緩存數據)或者Linux工具首先訪問本地hosts,hosts文件里面寫了ip和域名對應解析關系。

Httpd-vhosts.conf參數詳解:

NameVirtualHost *:80     開啟虛擬主機,並且監聽本地所有網卡接口的80端口;

<VirtualHost *:80>                                                           虛擬主機配置起始;

    ServerAdmin support@jfedu.net                             管理員郵箱;

    DocumentRoot "/usr/local/apache2/htdocs/jf1"        該虛擬主機發布目錄;

    ServerName www.jf1.com                                                虛擬主機完整域名;

    ErrorLog "logs/www.jf1.com_error_log"                      錯誤日志路徑及文件名;

    CustomLog "logs/www.jf1.com_access_log" common  訪問日志路徑及文件名;

</VirtualHost>                                                                 虛擬主機配置結束。

設置項目的默認訪問目錄

<Directory "/test/jf1"> 

          Options Indexes MultiViews 

Options這個子句用來說明一些主要的設置,目前可以使用的設置有Indexes,Includes,FollowSymLinks,ExecCGI,MultiView,當然還有兩個最簡單的選擇就是None和All。

  None是禁止所有選擇,而All 允許上面的所有Options。一般我們主要關心的是Indexes 和FollowSymLinks。Indexes 是設定是否允許在目錄下面沒有index.html 的時候顯示目錄,而FollowSymLinks 決定是否可以通過符號連接跨越DocumentRoot。

          AllowOverride None 

 AllowOverride 定義是否允許各個目錄用目錄中的.htaccess(后面解釋)覆蓋這里設定的Options。它的選擇有Options,FileInfo,AuthConfig,Limit 或者它們的組合,當然還有None 和All。

          Order allow,deny 

它有兩種用法,即Order allow,deny 或者Order deny,allow。簡單地說,它用來設置是先執行deny 還是先執行allow,例如,Order deny,allow 意味着先看deny 行,再看allow 行,這樣如果deny from all 再allow from 202.112.58.0/24 后來的allow子句就會超越deny 而對202.112.58.x 打開訪問。

          Allow from all 

這兩個選項和Order 一起使用,Allow 允許某個地址來的連接請求,Deny 則禁止這個請求,例如在Order deny,allow 的情況下,Deny from all,Allow from 192.168.12.0/24 表示只有192.168.12.x 的用戶可以訪問這個目錄。

          DirectoryIndex index.html

    配置默認的網頁后綴

</Directory>

(2)     創建www.jf1.com及www.jf2.com發布目錄,重啟apache服務,並分別創建index.html頁面:

mkdir  -p  /usr/local/apache2/htdocs/{jf1,jf2}/

/usr/local/apache2/bin/apachectl restart

echo  "<h1> www.jf1.com  Pages</h1>" >/usr/local/apache2/htdocs/jf1/index.html

echo  "<h1> www.jf2.com  Pages</h1>" >/usr/local/apache2/htdocs/jf2/index.html

(3)     Windows客戶端設置Hosts映射,將www.jf1.comwww.jf2.com與192.168.111.131 IP進行映射綁定,映射的目的將域名跟IP進行綁定,在瀏覽器可以輸入域名,不需要輸入IP地址,綁定方法是在“C:\Windows\System32\drivers\etc”文件夾中,使用記事本編輯hosts文件,加入如下代碼,如圖10-4所示:

192.168.111.131  www.jf1.com

192.168.111.131  www.jf2.com

 

圖10-4 Windows主機Hosts配置

(4)     瀏覽器訪問www.jf1.com、www.jf2.com如圖10-5(a)、10-5(b)所示,至此Apache基於多域名虛擬主機配置完畢,如果還需添加虛擬主機,直接拷貝其中一個虛擬主機配置、修改WEB發布目錄即可:

圖10-5(a) www.jf1.com網站返回內容

圖10-5(b) www.jf2.com網站返回內容

Apache配置文件詳解

Apache的配置文件是Apache WEB難點,讀者需要掌握配置文件中每個參數的含義,才能理解並在日常運維中去解決Apache遇到的故障,如下為Apache配置文件詳解:

1)Global Environment---全局環境配置,決定Apache服務器的全局參數

2)Main server configuration---主服務配置,相當於是Apache中的默認Web站點,如果我們的服務器中只有一個站點,那么就只需在這里配置就可以了。

3)Virtual Hosts---虛擬主機,虛擬主機不能與Main Server主服務器共存,當啟用了虛擬主機之后,Main Server就不能使用了

 

ServerTokens OS                                      顯示服務器的版本和操作系統內核版本;在出現錯誤頁的時候是否顯示服務器操作系統的名稱,ServerTokens Prod為不顯示

ServerRoot  "/usr/local/apache2/"        Apache主配置目錄;服務啟動之后自動將目錄改變為當前目錄,在后面使用到的所有相對路徑都是想對這個目錄下

PidFile run/httpd.pid                         PidFile進程文件;這是系統識別一個進程的方法,系統中httpd進程可以有多個,但這個PID對應的進程是其他的父進程

Timeout 60                                            不論接收或發送,當持續連接等待超過60秒則該次連接就中斷;服務器與客戶端斷開的時間

KeepAlive Off                                            關閉持續性的連接;(因為每次連接都得三次握手,如果是訪問量不大,建議打開此項,如果網站訪問量比較大關閉此項比較好),修改為:KeepAlive On 表示允許程序性聯機

MaxKeepAliveRequests 100                    當KeepAlive設置為On的時候,該數值可以決定此次連接能夠傳輸的最大傳輸數量;

KeepAliveTimeout 65                                  當KeepAlive設置為On的時候,該連接在最后一次傳輸后等待延遲的秒數;

<IfModule prefork.c>                              Prefork MPM引擎配置段;

StartServers      8                              默認啟動Apache工作進程數;開始服務時啟動8個進程,最小空閑5個進程,最多空閑20個進程。

MinSpareServers   5                                  最小空閑進程數;

MaxSpareServers   20                             最大空閑進程數;

ServerLimit      4096                             Apache服務器最多進程數;服務器允許配置進程數的上限

MaxClients      4096                             每秒支持的最大客戶端並發;限制同一時刻客戶端的最大連接請求數量超過的要進入等候隊列。

MaxRequestsPerChild  4000                  每個進程能處理的最大請求數;每個進程生存期內允許服務的最大請求數量,0表示永不結束

</IfModule>

<IfModule worker.c>                                  Worker MPM引擎配置段;

StartServers        8                               默認啟動Apache工作進程數;

MaxClients         4000                           每秒支持的最大客戶端並發;

MinSpareThreads     25                            最小空閑線程數;

MaxSpareThreads     75                           最小空閑線程數;

ThreadLimit                                           每個子進程可能配置的線程上限

ThreadsPerChild     75                       每個進程啟動的線程數;

MaxRequestsPerChild  0                     每個進程能處理的最大請求數,0表示無限制;

</IfModule>

 

為Apache配置線程訪問,即每對WEB服務訪問啟動一個線程,這樣對內存占用率比較小。

ServerLimit服務器允許配置進程數的上限。

ThreadLimit每個子進程可能配置的線程上限

StartServers啟動兩個httpd進程,

MaxClients同時最多能發起250個訪問,超過的要進入隊列等待,其大小有ServerLimit和ThreadsPerChild的乘積決定

ThreadsPerChild每個子進程生存期間常駐執行線程數,子線程建立之后將不再增加

MaxRequestsPerChild每個進程啟動的最大線程數,如達到限制數時進程將結束,如置為0則子線程永不結束

LoadModule  mod_version.so               靜態加載apache相關模塊;

ServerAdmin support@jfedu.net            管理員郵箱,網站異常,錯誤信息會發生至該郵箱;

Listen 80                                               監聽的端口,如有多塊網卡,默認監聽所有網卡

123 150 LoadModule auth_basic_module modules/mod_auth_basic.so

......

201 LoadModule version_module modules/mod_version.so   啟動時加載的模塊 mod_access已經更名為mod_authz_host

Include conf.d/*.conf                                                                     加載的配置文件

DocumentRoot   "/usr/local/apache2/htdocs/"  Apache網站默認發布目錄;

User apache

Group apache                         啟動服務后轉換的身份,在啟動服務時通常以root身份,然后轉換身份,這樣增加系統安全

ServerName www.example.com:80                    默認是不需要指定的,服務器通過名字解析過程來獲得自己的名字,但如果解析有問題(如反向解析不正確),或者沒有DNS名字,也可以在這里指定IP地址,當這項不正確的時候服務器不能正常啟動。前面啟動Apache時候提示正在啟動 httpd:httpd: apr_sockaddr_info_get() failed forjustin httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1forServerName,解決方法就是啟動該項把www.example.com:80修改為自己的域名或者直接修改為localhost

 

<Directory "/data/webapps/www1">     設置/data/webapps/www1目錄權限;

    AllowOverride All

    Options -Indexes FollowSymLinks

    Order allow,deny

    Allow from all

</Directory>

AllowOverride                                      設置為None時,目錄中.htaccess 文件將被完全忽略,當指令設置為All時,.htaccess文件生效;.htaccess文件(或者"分布式配置文件")提供了針對目錄改變配置的文件, 以作用於此目錄及其所有子目錄。作為用戶,所能使用的命令受到限制。

Options -Indexes FollowSymLinks             禁止瀏覽目錄,去掉”-“,表示瀏覽目錄,常用於下載站點;

Order    allow,deny                              默認情況下禁止所有客戶機訪問;

Order   deny,allow                             默認情況下允許所有客戶機訪問;

Allow   from all                                允許所有客戶機訪問。

DirectoryIndex index.html index.html.var              指定所要訪問的主頁的默認主頁名字,默認首頁文件名為index.html

AccessFileName .htaccess            定義每個目錄下的訪問控制文件名,缺省為.htaccess

TypesConfig /etc/mime.types             用於設置保存有不同MIME類型數據的文件名

DefaultType text/plain           默認的網頁的類型

ErrorLog logs/error_log      錯誤日志存放的位置

LogLevel warn                  Apache日志的級別

 

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent     定義了日志的格式,並用不同的代號表示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM