Apache 和 Nginx 設定

默認,Plesk 使用 Apache web 伺服器 (http://en.wikipedia.org/wiki/Apache_HTTP_Server) 向客戶提供網頁(如訪客用來存取您的網站的瀏覽器)。要獲得更好的性能,Apache 可輔以另一款 web 伺服器 - nginx。您還可以只使用nginx。

默認 web 伺服器設定 由伺服器管理員(主機提供商)指定。這些設定可確定 web 伺服器處理不同類型檔的方式、使用 SSL/TLS 的方式、日誌檔存儲的位置,等等。

但是,您(作為網站所有者)可以設定網站的 自訂 web 伺服器設定。例如,添加索引檔案類型,限制存取網站,等等。

注意: 如果您的主機訂閱提供相應的許可權時,您可以調整網站的 web 伺服器設定。

在本小節:

調整 Apache 和 Nginx 設定

配置 MIME 類型

配置 Apache 處理常式

拒絕存取網站

配置索引檔

配置"Expires" 頭

配置其它標頭

限制遵循符號連結

僅使用Nginx的主機

配置靜態檔處理方式

啟用 nginx 緩存

伺服器設定的預設值

 
調整 Apache 和 Nginx 設定

Apache 和 nginx 有些設定可以在域名層進行自訂。這些設定位於 網站與域名 > domain name > Apache 與 nginx 設定。這些設定分成兩組:

  • 通用 Apache 設定
  • nginx 設定

    apache

 
配置 MIME 類型

MIME 類型 會匹配檔副檔名和檔案類型以指令 web 瀏覽器如何處理某類檔。例如,下面的 MIME 類型

text/plain .txt

指令web 瀏覽器以純文字來處理所有的 .txt 文件。預設,已預配置大部分通用 MIME 類型。但是,如果因為您使用帶有非標準副檔名的檔,而導致web瀏覽器無法正確處理您的網站頁面時,則需要配置一個或多個自訂的 MIME 類型。

若要配置 MIME 類型,請如下操作:

  1. 進入 網站與域名 > Apache 與 nginx 設定
  2. MIME 類型下,選擇 輸入自訂值 按鈕。
  3. 輸入或刪除所需的 MIME 類型,點按 確定
 
配置 Apache 處理常式

Apache 處理常式會指令web 伺服器處理帶有特定副檔名的檔。例如,下面的處理常式

cgi-script .cgi

會指令 web 伺服器以 cgi 腳本來處理所有的 .cgi 文件。預設帶有通用副檔名的檔的處理常式已預先配置好。但是,如果您想要更改處理帶有某個副檔名的檔的處理常式,則需要配置一個或多個自訂處理常式。

若要配置自訂的處理常式,請如下操作:

  1. 進入 網站與域名 > Apache 與 nginx 設定
  2. 處理常式下,選擇 輸入自訂值 按鈕。
  3. 輸入或刪除所需的處理常式,點按 確定
 
拒絕存取網站

您可以阻止某些訪客存取您的網站。您可拒絕下列各位址進行存取:

  • 單個IP地址(例如,192.168.1.110
  • IP地址的子網(例如,127.0.0.1/8
  • 指定的主機名稱(例如,example.com
  • 所有人(使用星號"*")

被禁止的訪客嘗試存取您的網站時會收到 "403 Forbidden" 的錯誤資訊。

若要配置存取您的網站的許可權,請如下操作:

  1. 進入 網站與域名 > Apache 與 nginx 設定
  2. 拒絕存取該網站下,選擇 輸入自訂值 按鈕。
  3. 輸入或刪除所需的 IP 位址、子網或主機名稱。
  4. 如果您阻止了一個子網,但是希望允許一個或多個屬於該子網的IP位址能夠存取您的網站,請將這些IP位址輸入到排除 欄位。
  5. 點按 確定

 
配置索引檔

不管到訪您網站的訪客何時瀏覽一個URL是請求一個目錄而不是一個特定檔(例如,請求 www.example.com www.example.com/example 而不是 www.example.com/index.html),Apache 都會查找一個索引檔來顯示。默認 Apache 會查找下面的檔(按指定的順序):

  1. index.html
  2. index.cgi
  3. index.pl
  4. index.php
  5. index.xhtml
  6. index.htm
  7. index.shtml

如果一個目錄中存在這所有七個檔,將會以 index.html 檔來服務瀏覽該目錄的訪客。如果 index.html 丟失,Apache 將會往下查找 index.cgi 文件,以此類推。如果未找到合適的索引檔,則預設顯示 "403 Forbidden" 錯誤。

Plesk允許自訂訪客瀏覽您網站上目錄時 Apache 所查找的索引檔:

  • 您可以更改 Apache 所查找的索引檔的順序(例如,您想要預設顯示 index.php 檔而不是 index.html)。
  • 您可以將索引檔案名稱添加到清單中,或移除它們(例如,如果您網站的預設頁面被命名為 hello.php,您則可以讓 Apache 預設使用該檔來服務)。

若要配置索引檔,請如下操作:

  1. 進入 網站與域名 > Apache 與 nginx 設定
  2. 索引檔下,選擇 輸入自訂值 按鈕。
  3. 按照Apache查找的順序輸入或刪除所需索引檔的名稱,然後點按 確定

 
配置"Expires" 頭

Apache expires 頭控制web瀏覽器可在多長時間內保留緩存的網頁內容。配置該標頭可降低伺服器負載並加快網站速度。

例如,您可設定到期時段為10 天。一個訪客存取您的網站,請求其 index.html 頁面。訪客的 web 瀏覽器會將該頁面副本保存在緩存裡,在接下來的10天內,每次訪客瀏覽您的網站時,都將以該緩存的頁面副本提供服務。第十一天時,如果請求該頁面,瀏覽器則將重新從伺服器請求該頁面,因為緩存的副本已過期。

為有動態內容的網站配置 expires 頭時,建議啟用 僅對靜態檔回應 Expires 頭 選項。否則,在到期前的有效期內包括動態內容在內的所有內容都將被存儲在瀏覽器的緩存中。不推薦這樣,因為動態內容會頻繁更新。

若要配置 "Expires" 頭,請如下操作:

  1. 進入 網站與域名 > Apache 與 nginx 設定
  2. Expires下,選擇 輸入自訂值 按鈕。
  3. 指定所需的有效期(推薦有效期為 14 天)。
  4. 如果您的網站有動態內容,請確保勾選 僅對靜態檔回應Expires頭 核取方塊。
  5. 點按 確定

注意: 如果啟用了 nginx,只有 Apache 服務的檔將有 expires 頭。如果選擇了 靜態檔智慧處理 核取方塊,哪些檔會作為靜態檔來處理則有 Apache 和 nginx 的預設配置決定。如果選擇了 由 nginx 直接服務靜態檔 核取方塊,且指定了檔副檔名,nginx則只服務帶有指定副檔名的檔。

 
配置其它標頭

您可以根據下面的模式配置其它的 HTTP 回應頭:

名稱:值

HTTP回應頭包含有關請求頁面指令web瀏覽器執行各項操作的資訊。例如,下面的標頭將會保護到訪您網站的訪客免受點按劫持

X-Frame-Options: DENY

若要配置其它的標頭,請如下操作:

  1. 進入 網站與域名 > Apache 與 nginx 設定
  2. 其它標頭下,選擇 輸入自訂值 按鈕。
  3. 輸入或刪除所需的標頭,點按 確定

 
限制遵循符號連結

預設允許Apache遵循符號連結:如果您的網站不使用符號連結,我們建議您禁用該選項,因為會有一定安全風險。

若要禁止 Apache 遵循符號連結,請如下操作:

  1. 進入 網站與域名 > Apache 與 nginx 設定
  2. 勾選 限制遵循符號連結 核取方塊,點按 確定

 
僅使用Nginx的主機

在 Plesk for Linux上,您可以組合使用 nginx 和 PHP-FPM 來託管網站。在此情況下,網站請求將不會傳遞到 Apache 而只由 nginx 服務。僅使用 Nginx的主機是PHP網站的一個可靠選項,也非常適合主機靜態網站和應用伺服器。您可以配置某個網站在不停止或禁用Apache的情況下僅由 nginx 服務,且不影響使用 Apache 託管的網站。

注意: Plesk 服務(例如,Webmail)會繼續使用Apache 正常運行,不受切換到僅使用nginx的主機模式的影響。

若要為某個域名啟用/禁用僅使用 nginx 的主機模式,請如下操作:

  1. 轉到 網站與域名 > Apache 與Nginx 設定
  2. nginx 設定 部分,請清空 代理模式 核取方塊。
  3. 按一下 應用

若要將某個域名恢復為 Apache+nginx 主機形式,請勾選代理模式 核取方塊。

已知局限性

當您將某個域名切換為僅使用nginx的主機模式時,您可能面臨某些局限性:

  • 無法檔共用。
  • 不支援 SSI、Perl 和 Python。
  • 只能使用 "由 nginx 服務的 FPM 應用程式" PHP 處理常式。

 
配置靜態檔處理方式

默認在 Plesk for Linux伺服器上,nginx和Apache是一前一後協同工作的,Apache服務動態內容,nginx用作代理服務靜態內容。該方案會優化伺服器資源的利用率,且能夠讓Plesk 更快回應對託管網站的請求。Plesk 允許選擇處理網站靜態內容的方式。

通過nginx服務所有靜態內容

這是Plesk for Linux預設的處理方式。不管對靜態內容的請求何時進來,Apache只會指示相應的檔位址,而nginx會去查找並服務該請求。

若想通過nginx服務所有靜態內容,請如下操作:

  1. 進入 網站與域名 > Apache 與nginx 設定 並向下滑動到"nginx 設定" 部分。
  2. 選擇代理模式靜態檔智慧處理核取方塊。
  3. 請不要勾選 由 nginx 直接服務靜態檔 核取方塊。
  4. 點按 確定
通過nginx只服務帶有指定副檔名的檔

如果需要,可以只把帶有特定副檔名的檔歸為由 nginx 服務的靜態內容。而其它檔通常歸為由 Apache 服務的靜態內容。注意,在該方案下,對有指定副檔名的檔的請求永遠都不會到達 Apache。也就是說這些請求不會通過Apache 處理常式。也就是說,不會應用覆寫規則或 .htaccess 指令。

若只想通過nginx服務指定的靜態內容,請如下操作:

  1. 進入 網站與域名 > Apache 與nginx 設定 並向下滑動到"nginx 設定" 部分。
  2. 選擇 代理模式由 nginx 直接服務靜態檔 核取方塊。
  3. 默認已經在 由 nginx 直接服務靜態檔 框內預先配置了某些靜態檔副檔名。必要時可以添加或移除副檔名。以空白或 "|" 字元隔開每個檔副檔名。
  4. 點按 確定

注意: 啟用 “由 nginx 直接服務靜態檔” 選項會自動禁用預設的 “靜態檔智慧處理” 模式(即使仍選定了該選項)。

通過 Apache 服務所有靜態和動態內容

如果需要,可以禁用 nginx 而配置 Apache 服務所有靜態和動態內容。這樣在某些情況下很有幫助,例如用於 nginx 故障排除時。對於生產環境下的網站,我們不建議使用 Apache 來處理所有內容。

若想通過 Apache 服務所有靜態和動態內容,請如下操作

  1. 進入 網站與域名 > Apache 與nginx 設定 並向下滑動到"nginx 設定" 部分。
  2. 選擇 代理模式 核取方塊。
  3. 清空 靜態檔智慧處理 和由 nginx 直接服務靜態檔 核取方塊。
  4. 點按 確定。

 
啟用 nginx 緩存

啟用 nginx 緩存後,nginx代理伺服器會緩存網站某些動態內容。而被緩存的資料會保留一小會兒時間(通常不超過幾秒鐘)。這樣可以幫助加速網站載入並減少伺服器負載。

只建議為某些特定網站啟用 nginx 緩存,例如,比較受歡迎的部落格或新聞網站:

  • 高流量。
  • 內容更新頻率在幾秒鐘內。

但是對下列網站啟用 nginx 緩存,不僅沒用還會有損害:

  • 中低流量。
  • 內容更新頻率通常少於幾秒鐘。
  • 有個性化內容(例如,訪客的地理位置或其購物車的內容)。

若要啟用 nginx 緩存,請如下操作:

  1. 轉到 網站與域名 > Apache 與Nginx 設定
  2. 在 “nginx 設定” 部分,勾選 “啟用 nginx 緩存” 核取方塊。
  3. (備選)您可以自訂 nginx 緩存設定。如果您對 nginx 緩存不熟悉,建議您保留默認設定。微調整這些設定可能會影響網站和伺服器性能。
  4. 點按 確定
nginx 緩存設定

在 Plesk 介面中顯示的Nginx緩存設定與nginx設定檔中的 nginx 指令和某些記錄相對應。您可以在下面的表格中查看詳情。

在Plesk GUI中顯示的Nginx 微緩存設定

相應的 nginx 指令

相應的 nginx 參數(如果有)

“緩存大小“

proxy_cache_path

max_size

“緩存超時“

proxy_cache_valid

 

“緩存key“

proxy_cache_key

 

“使用 cookies 的緩存請求“

在 nginx 設定檔中指定的

 

“禁用緩存地址“

在 nginx 設定檔中指定的

 

“繞過緩存,當”

proxy_cache_bypass

 

“返回過期緩存記錄”

proxy_cache_use_stale

 

注意: 對於使用 nginx 和 PHP-FPM 處理常式的網站,proxy_cache* 指令會被 fastcgi_cache* 替換。例如,“Cache key“ 設定由 fastcgi_cache_key 指令而不是 proxy_cache_key 管控。

“使用 cookies 的緩存請求“ 設定

默認,nginx 不會緩存含有  Cookie HTTP 頭的 HTTP 請求。您可以更改此執行方式,在“使用 cookies 的緩存請求“ 欄位中指定 cookies 的名稱以令 nginx 緩存包含該等 cookies 的 HTTP 請求。例如,如果您指定 _ga and _gid cookie 名稱,nginx 則將只緩存帶有含 _ga or _gid 的 cookie 頭的 HTTP 請求。Nginx 將不會緩存此類 HTTP 請求:帶有的 cookie 頭至少包含一個未在欄位中指定的 cookie 名稱。

????

“禁用緩存位址“ 設定

您可以通過配置 nginx 不緩存某些 web 內容(例如,不常查看的動態內容)來減少伺服器負載。具體操作是,在 “禁用緩存位址“ 欄位中指定所需的 $request_uri。例如,如果您指定了 /wp-admin/,nginx 將不會緩存與 WordPress Admin Panel 相關的內容。

uri

注意: 如果您想要在 “使用 cookies 的緩存請求“ 和“禁用緩存位址“ 欄位中指定多個值,請每個值各占一行。

 
伺服器設定的預設值

您可設定每個參數值,可輸入一個自訂值,或者保留 默認 值。後面一種情況下,Plesk 會使用由伺服器管理員(主機提供商)定義的 web 伺服器配置的預設值。

您的值會覆蓋預設值。唯一例外的是 拒絕存取網站 設定 - 預設配置的 IP 位址,以及您指定的 IP 地址,都將被應用到您的網站。在發生衝突時(例如,當您允許預設配置中拒絕的 IP 位址),Apache 會使用您的設定。