在Arch Linux上使用Makepkg
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
HTTP / 2是基于SPDY的HTTP协议的最新版本。它的开发由Google发起,HTTP / 2主要基于SPDY的代码库和概念。
SPDY现在已被弃用,并且正在进行HTTP / 2的全球采用。由于HTTP / 2的速度提高,许多托管公司已经提供了对HTTP / 2的支持。
在撰写本文时,DirectAdmin尚未提供启用HTTP / 2的一键式方法。但是,有多种方法可以实现HTTP / 2支持。事实证明,以下概述的方法是最可靠,最稳定的方法。
为了使HTTP / 2生效,需要更新几个组件。因此,强烈建议您进行快照。如果可能,请在全新的服务器上遵循本指南。
本指南包括两部分:在Web服务器(Apache)中为客户端(访问者)启用HTTP / 2支持以及在cURL中激活HTTP / 2。对cURL启用HTTP v2会强制从服务器发出的cURL请求在其目标服务器中使用HTTP / 2。
尽管这不是HTTP / 2本身的技术要求,但在大多数情况下,您将需要SSL证书才能使用HTTP / 2。如前所述,HTTP / 2在技术上并不需要此标准,但是许多浏览器(Safari,Chrome,Firefox等)已经创建了此标准。使用这些浏览器在没有SSL的情况下加载网页时,将无法通过HTTP / 2提供内容。考虑到大多数用户使用的这些浏览器(和其他浏览器)也都参与了此标准,因此应使用SSL证书。
如果您正在寻找免费的SSL证书,则应查看我们的“加密”指南之一:
推荐:在DirectAdmin上安装Let's Encrypt
备用控制面板:
一般指南:
该指南是否记录了Brotli的安装?
不,本文没有概述将Brotli与HTTP / 2一起安装的方法。
编译无缘无故失败,我已经按照本文概述的确切步骤进行了操作。我该如何解决?
即使有许多可能的原因,但考虑到不同的环境等因素,您的语言环境设置也可能不正确。尝试将LC_ALL=C命令放在命令的前面,以便重新编译Apache的命令如下所示:LC_ALL=C ./build apache 不要忘记LC_ALL=C命令和命令之间的空格!
我会丢失任何数据吗?
如果您当前正在使用反向代理设置,例如与Apache和Nginx一起使用,则应将其还原回Apache,在这种情况下,您的确会丢失Nginx配置文件。如果您已经进行了自定义的VirtualHost配置(通过命令行或DirectAdmin本身),则应针对每个域进行更改,以使Apache版本保持活动状态。您不会丢失任何有关用户数据,网站内容,数据库等的数据。
这些自定义版本将来会阻止我更新软件包和软件吗?
通常,无需为此担心。考虑到DirectAdmin的模块化设置(以及CustomBuild的模块化设置),您将来应该可以降级或升级到其他软件版本,而不会出现任何问题。尽管您应该记录这些更改,以防将来需要其他升级路径,但无需担心与新软件版本不兼容的情况。
DirectAdmin不提供现成的HTTP / 2。当然,这意味着它不兼容,或者他们有理由不兼容。为什么需要此解决方法?
下面描述的用于安装和启用HTTP / 2的方法并不是很多解决方法,而仅仅是软件包更新和配置更改。由于DirectAdmin的模块化设置,这些更改非常好,不会引起任何问题或其他麻烦。鉴于作者尚未对此做出解释,因此很难确定DirectAdmin为什么不立即提供支持。但是,一个相当可靠的结论是DirectAdmin由操作系统使用版本包。这些通常不是最新的软件包。HTTP / 2,技术本身及其兼容性没有问题。就像许多其他技术一样,它可能需要一些时间才能自然地适应。
用Apache激活HTTP / 2可能有哪些风险?
在激活HTTP / 2(包括升级和配置过程)中,有许多变量可能是非标准的。但是,最大的风险在于人为错误。事先拍摄快照,确保将维护通知给您的用户(如果服务器上除了您自己有维护),请当心。此外,不要在不首先考虑命令作用的情况下复制和粘贴命令。
我强烈建议使用DirectAdmin暂时分解一个单独的Vultr云实例,并逐步完成这些步骤。如果“全新”安装出现问题,您将知道在哪里以及如何调试它,因此您不必在生产环境中进行调试。
如果当前正在使用反向代理,则应切换回仅Apache环境。这是因为如果出现问题,HTTP / 2很难调试。通过能够使用Apache的集成HTTP / 2功能,您可以有效地消除大部分麻烦。
在许多情况下,您的OpenSSL版本与HTTP / 2所需的ALPN不兼容。因此,让我们通过更新OpenSSL来启用ALPN。
首先,通过执行以下命令来确保您的OpenSSL版本不兼容:
openssl version
如果您的OpenSSL版本低于1.1.0f,请以root用户身份执行以下命令。否则,请跳至步骤2。
cd ~
wget ftp://ftp.openssl.org/source/openssl-1.1.0f.tar.gz
tar xzf openssl-1.1.0f.tar.gz
cd openssl-1.1.0f
./config --prefix=/usr/local/lib_http2 no-ssl2 no-ssl3 zlib-dynamic -fPIC
make depend
make install
为了使HTTP / 2正常工作,我们需要安装nghttp2。Nghttp2是C中HTTP / 2(和HPACK)的实现。Nghttp2是C中HTTP / 2客户端,服务器和代理的组合版本。
要安装nghttp2,请执行以下命令。幸运的是,可以从CustomBuild直接构建nghttp2。
cd /usr/local/directadmin/custombuild
./build update
./build nghttp2
我们需要在Apache配置文件中更改一些值,以使其使用HTTP / 2。当Web服务器未获得使用备用HTTP版本的说明时,它将不会使用它。因此,我们需要将HTTP / 2添加到配置文件中。
为了使这些更改生效,必须通过CustomBuild重建Apache。由于在专用的配置文件中确定了构建软件时CustomBuild使用的参数和值,因此最佳实践是将这些更改放入专用的自定义配置文件中。
注意:如果您不将这些更改放入自定义文件中,则很可能会覆盖它们,并且您的设置将被破坏。请按照以下说明进行操作。
执行以下命令以创建文件并用默认值预填充它,以便我们以后可以对其进行更改:
mkdir -p /usr/local/directadmin/custombuild/custom/ap2
cp -p /usr/local/directadmin/custombuild/configure/ap2/configure.apache /usr/local/directadmin/custombuild/custom/ap2/configure.apache
到目前为止,我们有一个自定义文件,该文件与CustomBuild使用的Apache的默认配置文件相同。我们必须/usr/local/directadmin/custombuild/custom/ap2/configure.apache通过替换以下字符串来更改文件:
"--with-ssl=/usr" \
与:
"--enable-http2" \
"--enable-ssl-staticlib-deps" \
"--with-ssl=/usr/local/lib_http2" \
注意:确保在任何反斜杠之后都没有空格。那里多余的空格将导致构建中断。
接下来,重建Apache。CustomBuild将使用您刚创建的自定义配置文件:
./build apache
现在已经重建了Apache,包括HTTP / 2的必要模块和设置。这意味着我们现在在服务器上安装了支持HTTP / 2的Apache版本,但是我们需要告诉Apache首先实际使用它。
在中添加以下行/etc/httpd/conf/extra/httpd-includes.conf:
ProtocolsHonorOrder On
Protocols h2 h2c http/1.1
保存这些更改并重写配置文件,以使它们在重建过程中保持不变:
cd /usr/local/directadmin/custombuild
./build rewrite_confs
HTTP / 2现在应该在您的Web(Apache)服务器上处于活动状态。
重新引导服务器,以确保我们的更改在重新引导后仍然存在。请通过Vultr控制面板或通过执行reboot命令重新启动服务器。
使用以下工具可以轻松测试HTTP / 2的功能:HTTP / 2测试
考虑到HTTP / 2是特定于服务器的,并且不能限于特定的一对域或网站,因此输入指向服务器的任何域名甚至服务器IP地址都应该起作用。
该测试将告诉您是否可以通过HTTP / 2访问Web服务器。如果该工具说您的服务器上激活了HTTP / 2,则现在可以通过HTTP / 1.1或HTTP / 2访问DirectAdmin网站。如果客户端(访问者)无法使用HTTP / 2支持,则其浏览器将退回到HTTP / 1.1。
如果该工具无法通过HTTP / 2访问您的Web服务器,请再次执行上述步骤。通常(由于上述步骤不会主动覆盖任何内容),这不会损坏或破坏您的设置。
我建议更新cURL,以便它能够访问支持HTTP / 2的服务器。如果服务器不支持HTTP / 2,它将退回到HTTP / 1.1。
就像使用Apache一样,我们将创建一个自定义配置文件,以便CustomBuild构建的cURL将使用我们的自定义设置。
创建目录:
mkdir -p /usr/local/directadmin/custombuild/custom/curl
创建文件:
touch /usr/local/directadmin/custombuild/custom/curl/configure.curl
将以下内容复制并粘贴到文件中:
#!/bin/sh
perl -pi -e 's|CURL_CHECK_PKGCONFIG\(zlib\)|#CURL_CHECK_PKGCONFIG(zlib)|g' configure.ac
LIBS="-ldl" ./configure --with-nghttp2=/usr/local --with-ssl=/usr/local/lib_http2
如您所见,这些内容告诉cURL使用lib_http2SSL库进行编译。
保存文件并给予正确的权限:
chmod 700 /usr/local/directadmin/custombuild/custom/curl/configure.curl
接下来,我们要做的就是构建cURL。
cd /usr/local/directadmin/custombuild
./build curl
现在已使用HTTP 2支持编译了cURL。
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息