Plesk 中的 HTTP/2 支援

概要

HTTP/2 是萬維網使用的 HTTP 網路通訊協定的第二大版本。2015 年 5 月獲准創建 HTTP/2 以解決 HTTP 1.1 存在的某些重大性能問題。可進入此處瞭解該協議的優勢。目前大部分主流 web 瀏覽器都支援 HTTP/2。

自 12.5.30 Update #28 版本起,Plesk 客戶則可以使用 HTTP/2,該支援需要 nginx 最新版本。

注意:HTTP/2 只支援 SSL 網站,非 SSL 網站將繼續在 HTTP/1.x 協定下運行。

如何為您的網站啟用 HTTP/2 支援

請務必更新 NGINX web 伺服器到最新版本且運行該版本。實現方式是進入 工具與設定 -> 伺服器元件工具與設定 -> 服務管理 頁面進行操作。

components

services

root 身份通過 SSH 登入到伺服器並使用以下命令列工具在 Plesk 中啟用 HTTP/2:

# plesk bin http2_pref enable

最後一個步驟過程中,您的 NGINX web 伺服器將會轉向使用 TLS 協定和現代的安全密碼,整個 web 伺服器配置將會被重建,而有 'SSL 支援' 的所有用戶端網站都將移向使用 HTTP/2。

在切換到 HTTP/2 的過程中請檢查命令輸出查找錯誤或警告。如果有任何問題,請參閱 故障排除 小節。

注意:您可以使用如 https://tools.keycdn.com/http2-test 的線上服務檢查是否已在某個域名上啟用了 HTTP/2 支援。

如果您想要返回 HTTP 1.x 而禁用 HTTP/2,請使用以下命令:

# plesk bin http2_pref disable
ALPN 支援

為了在 Google Chrome 中正確使用 HTTP/2,nginx web 伺服器必須支援 ALPN (Application-Layer Protocol Negotiation)。詳情請參閱 ALPN 文檔

nginx web 伺服器的 ALPN 支援在以下作業系統中的 Plesk 中可用。CentOS 7, RedHat Enterprise Linux 7, Ubuntu 14.04, Ubuntu 16.04, Debian 8.

也就是說 Plesk 支援的 HTTP/2 可在提及的作業系統上于所有現代瀏覽器中運行。

故障排除

如果您在為某個網站啟用 HTTP/2 支援時遇到問題,或通過 https://tools.keycdn.com/http2-test 檢查站點的結果中顯示只啟用了 HTTP 1.x 協定,請根據以下步驟進行故障排除。

  1. 請務必在域名的 主機設定 部分啟用 SSL 支援。HTTP/2 只支援 SSL 網站,非 SSL 網站將繼續在 HTTP/1.x 協定下運行。這對於 NGINX web 伺服器和 web 瀏覽器來說無疑是一種限制。
  2. 檢查是否啟用 nginx:

    # plesk sbin nginxmng –s

    必要時請啟用:

    # plesk sbin nginxmng -e

  3. 檢查 OpenSSL 包是否有 1.0.1 或更新版本。

    # rpm -qa | grep openssl

    openssl-1.0.1e-42.el6_7.4.x86_64.

  4. 檢查 /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php 確定沒有自訂配置範本。如果有找到請移除,並重新創建設定檔:

    # plesk sbin httpdmng --reconfigure-all

    另外,如果您不想移除自訂設定,您可以如下修改檔 /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php

    找到類似下面的幾行

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') ?>;

    使用下面兩行進行替換:

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') .

    ($OPT['ssl'] && $VAR->domain->physicalHosting->proxySettings['nginxHttp2'] ? ' http2' : '') ?>;

    然後運行命令:

    # plesk bin http2_pref enable

  5. 檢查檔 /usr/local/psa/admin/conf/panel.ini 是否有以下部分:

    [webserver]

    nginxHttp2 = true

  6. 檢查 /usr/local/psa/admin/conf/panel.ini 檔確定沒有不正確的項。如果有請修復。如果您對這些項不太確定,請備份 /usr/local/psa/admin/conf/panel.ini 然後從 /usr/local/psa/admin/conf/panel.ini.sample 恢復原始檔。

    重新創建設定檔:

    # plesk sbin httpdmng --reconfigure-all

  7. 如果已啟用的 HTTP/2 有 ssl 連接問題,請確保 ssl_ciphers 指令(在 /etc/nginx/conf.d/ssl.conf 或在自訂的 nginxDomainVirtualHost.php 檔中) 有以下值:

    ssl_ciphers EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:CHACHA20:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;

  8. 如果啟用了 HTTP/2 後網站無法在某些瀏覽器中運行,可能的原因是沒有 HTTP/2 必需的密碼和協定。在啟用 HTTP/2 後使用來自 Plesk 的 sslmng 工具設定可用的協定和 TLS 密碼清單。例如,如果您想要使用與 Plesk 使用的相同的密碼,可執行以下命令:

    #plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"

    配置將會存儲在 /etc/nginx/conf.d/ssl.conf 文件中。我們不建議手動編輯該檔。

  9. 如果上面的步驟沒有幫助,請聯繫 Plesk 技術支援
 

Leave your feedback on this topic here

If you have questions or need support, please visit the Plesk forum or contact your hosting provider.
The comments below are for feedback on the documentation only. No timely answers or help will be provided.