(Plesk for Linux) HTTP/2 Support in Plesk
概要
HTTP/2(還被稱之為 HTTP/2.0 和 HTTP 2.0)是萬維網使用的 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 伺服器到最新版本且運行該版本。實現方式是進入 工具與設定 -> 伺服器元件 或 工具與設定 -> 服務管理 頁面進行操作。
以 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、Debian 8.
也就是說 Plesk 支援的 HTTP/2 可在提及的作業系統上于所有現代瀏覽器中運行。
故障排除
如果您在為某個網站啟用 HTTP/2 支援時遇到問題,或通過 https://tools.keycdn.com/http2-test 檢查站點的結果中顯示只啟用了 HTTP 1.x 協定,請根據以下步驟進行故障排除。
-
請務必在域名的 主機設定 部分啟用 SSL 支援。HTTP/2 只支援 SSL 網站,非 SSL 網站將繼續在 HTTP/1.x 協定下運行。這對於 NGINX web 伺服器和 web 瀏覽器來說無疑是一種限制。
-
檢查是否啟用 nginx:
# plesk sbin nginxmng -s
必要時請啟用:
# plesk sbin nginxmng -e
-
檢查 OpenSSL 包是否有 1.0.1 或更新版本。
# rpm -qa | grep openssl openssl-1.0.1e-42.el6_7.4.x86_64.
-
檢查
/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
-
如果已啟用的 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;
-
如果啟用了 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
文件中。我們不建議手動編輯該檔。 -
如果上面的步驟沒有幫助,請聯繫 Plesk 技術支援 。