如何在Plesk服务器上启用HTTP / 2

Plesk具有本机HTTP / 2支持。它的部署过程需要仔细计划,尽管与其他控制面板相比,在Plesk上推出HTTP / 2要容易得多。本指南适用于各种操作系统。只要您具有足够的Plesk和OpenSSL版本,此处提供的步骤就可以使用。我将在“步骤1:检查需求”中描述这些需求。

您应该考虑到,如果您使用SSL证书,许多浏览器将仅支持您网站的HTTP / 2。不使用SSL证书时,将不会通过HTTP / 2提供内容。幸运的是,有很多方法可以获取SSL证书。如果您有兴趣获得Let's Encrypt证书,请查看本指南,以在Plesk上创建一个证书:Let's Encrypt on Plesk

即使您很有可能在没有用户或访客注意的情况下启用HTTP / 2(并且没有任何停机时间),也应宣布此维护。如果未正确配置您的SSL密码套件,则可能会有一些停机时间。幸运的是,使用Plesk的内置工具还原更改非常容易。

您应该绝对确定对配置文件没有直接更改,因为我们将覆盖一些配置文件。不过,如果您使用受支持的方法(在自定义文件中)专门进行了更改,则无需担心。

如果可能,您应该使用简单的Plesk安装启动另一个Vultr云服务器,并执行以下命令。然后,根据其成功(或失败),您可以采取措施立即调试和/或解决当前正在使用的生产服务器上将来的HTTP / 2部署中可能出现的任何问题。

启用HTTP / 2

步骤1:检查需求

现成的,您可以为部署Plesk的反向代理启用HTTP / 2支持。如果不确定服务器是否使用反向代理,则应检查“服务监视器”。如果您同时看到Apache和Nginx,则可以安全地假设您的安装当前正在使用反向代理。如果仅看到Apache或仅看到Nginx,则很可能将使用单个Web服务器。

核心是HTTP / 2正常工作所绝对需要的一个特定要求,它是具有ALPN支持的OpenSSL版本。

但是,如果在CentOS / RHEL 7,Ubuntu 14.04,Debian 8或更高版本上安装了Plesk版本12.5.30或更高版本,则NGIx随即提供ALPN支持。

如果您使用的是较旧的Plesk或操作系统版本,则可以升级某些软件包。但是,我不支持或记录此文件。这些版本和操作系统非常旧,最佳实践是对其进行更新。还应考虑使用过时的软件的安全风险。

没有文档明确说明哪些操作系统和版本与Plesk上的HTTP / 2兼容;请参阅第11页上的“确定。但是,如果您使用最新版本(在发布本指南时),则应满足要求。您可以放心地假设较旧的操作系统(例如CentOS / RHEL 5)将不兼容。

除了OpenSSL版本要求外,请注意Apache不一定也必须与HTTP / 2兼容。自版本2.4.17起,已提供对Apache的HTTP / 2支持,但是如果您使用反向代理(这是Plesk中的默认设置),则仅Nginx版本就足够了。后端服务器Apache不必兼容。您可以在Plesk中咨询“服务管理器”,以确保您使用的是反向代理。当在此处列出Nginx时,可以安全地假设将Apache和Nginx安装为反向代理设置,其中Nginx充当前端服务器。

以下命令显示Nginx是否已激活。

/usr/local/psa/admin/bin/nginxmng -s

对于OpenSSL,您至少应具有1.0.1版本。您可以使用以下命令进行检查:

rpm -qa | grep openssl

这将打印类似于以下的版本:

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

如果OpenSSL版本不等于或大于1.0.1,则应更新操作系统。部署在较新的操作系统上的Plesk将立即使用OpenSSL 1.0.1。

步骤2:在Plesk中启用HTTP / 2

根据所使用的操作系统,使用该http2_pref工具启用HTTP / 2 。该命令应以root用户身份执行。

在CentOS / RHEL上启用HTTP / 2

执行: /usr/local/psa/bin/http2_pref enable

在Ubuntu / Debian上启用HTTP / 2

执行: /opt/psa/bin/http2_pref enable

步骤3:改善密码套件

使用一个好的密码套件对于安全性至关重要。支持过时的协议将有效地消除安全措施的影响。确保使用内置的Plesk工具调整可用的协议和可用的TLS版本sslmng

例如,启用以下密码和TLS版本将确保与HTTP / 2兼容。如果您不确定应该启用的密码和版本,请遵循以下设置:

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更新中保留更改。

为了使用另一个密码套件来获得“完美的前向保密性”,您可以尝试以下密码:

ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS

有许多可用的密码套件,您应该选择最适合自己的密码套件。您应该访问诸如Cipherli.st之类的网站,以收集适合您需求的密码套件。通过在sslmng工具中指定密码套件,密码套件将立即使用。

要检查作为客户端的浏览器的TLS支持,请使用Qualys SSL工具。如果您不允许使用足够的密码或TLS版本,则某些网站可能无法访问。

步骤4:检查HTTP / 2兼容性

启用HTTP / 2后,您应该检查是否可以通过HTTP / 2访问您的网站和Web服务器。为此有一个非常方便的基于Web的工具:HTTP / 2 Test

为了获得准确的结果,请确保已禁用服务器前面的所有反向代理。例如,如果您使用的CDN不支持HTTP / 2,则测试工具将返回您的网站,即使该网站在服务器级别已成功启用,也不支持HTTP / 2。就像其他方法一样:如果您的网站前面有反向代理(例如Cloudflare)(支持HTTP / 2),则该工具将始终返回HTTP / 2,使其处于启用状态并且可以正常工作,无论其在服务器级别的功能如何。 。

如果启用HTTP / 2后,某些浏览器拒绝加载您的网站或从Web服务器提供任何内容,则应使用Qualys的SSL工具分析SSL设置。

(可选)还原HTTP / 2配置

如果需要,如果需要时间进行调试,只需执行以下命令即可(临时)禁用HTTP / 2。一旦您想重新启用HTTP / 2,只需执行命令将其激活,然后重试即可访问您的任何网站。无法为特定域或网站启用或禁用HTTP / 2。这是服务器范围的设置。

在CentOS / RHEL上禁用HTTP / 2

执行: /usr/local/psa/bin/http2_pref disable

在Ubuntu / Debian上禁用HTTP / 2

执行: /opt/psa/bin/http2_pref disable

故障排除

考虑到启用HTTP / 2所涉及的服务器的许多组件,在某些情况下,您可能需要对激活HTTP / 2支持后网站无法正确加载或完全加载时进行故障排除。

注意:执行http2_pref以下步骤时,确保不要使用该工具禁用HTTP / 2支持。

检查要求

首先,请确保您满足本文开头概述��要求。

重新创建Nginx配置

如果满足HTTP / 2的要求,则可以尝试重新创建Nginx配置文件。您应该知道这将删除所有自定义配置,因此请事先创建Nginx配置目录的备份。由于配置文件可以分布在整个服务器中,因此最好简单地制作快照或进行备份。然后,执行以下命令:

/usr/local/psa/admin/bin/httpdmng --reconfigure-all

重新检查密码套件

如果这也没有任何效果,很可能是密码套件的原因。再次执行以下命令:

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"

错误中 panel.ini

确保文件/usr/local/psa/admin/conf/panel.ini包含以下内容:

[webserver]
nginxHttp2 = true

您可以通过执行以下命令来快速检查文件是否包含此文件: cat /usr/local/psa/admin/conf/panel.ini | grep nginxHttp2

此命令不返回任何内容吗?那么很有可能该文件是只读的,例如由于某个chattr属性。当执行http2_pref命令(启用HTTP / 2)时,可能已经添加了它。

检查是否使用SSL

当网站不使用SSL时,它将退回到HTTP / 1.1。只有使用SSL的网站才能使用HTTP / 2进行服务。确保在所有情况下都不要在本地强制执行HTTP / 2,因为这将不起作用,也不是服务器端的问题。

其他选择

如果这也不起作用,则应咨询Plesk专家,例如在Plesk论坛上。不过,在许多情况下,上述步骤将解决大多数问题。

您可以采取的最后一项措施就是重启服务器。在某些奇怪的情况下,这可以解决一些突发问题。但是,您应该始终能够查明问题,以防止它们(突然)再次发生。

我的指南到此结束,谢谢您的阅读。



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在Ubuntu 16.10上安装Review Board

如何在Ubuntu 16.10上安装Review Board

使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

如何使用Ubuntu 15.10在Vultr服务器上安装Xubuntu桌面

Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

如何使用SSL和安全密码保护由Nginx驱动的网站

如何使用SSL和安全密码保护由Nginx驱动的网站

简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。

如何在Fedora 26 LAMP VPS上安装MODX Revolution

如何在Fedora 26 LAMP VPS上安装MODX Revolution

使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由

如何在Ubuntu 17.04上安装JuliaLang

如何在Ubuntu 17.04上安装JuliaLang

朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性

在Ubuntu 14.04上安装Ruby on Rails

在Ubuntu 14.04上安装Ruby on Rails

Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。

在Fedora 28上安装Anchor CMS

在Fedora 28上安装Anchor CMS

使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何管理Linux服务器时区设置

如何管理Linux服务器时区设置

在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区

如何在Ubuntu 16.04上安装Taiga项目管理工具

如何在Ubuntu 16.04上安装Taiga项目管理工具

使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量

在Ubuntu上配置Nagios:第1部分-Nagios服务器

在Ubuntu上配置Nagios:第1部分-Nagios服务器

本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio

如何访问Vultr VPS

如何访问Vultr VPS

Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

如何在Fedora 26 LAMP VPS上安装Pagekit 1.0 CMS

使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

如何在Ubuntu 16.04 LAMP VPS上安装BigTree CMS

使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息