只使用软件包将CentOS上的Nginx升级为支持HTTP/2

HTTP/2

由于CentOS 7.4将OpenSSL升级至1.0.2,现在可以通过完全使用软件包来使Nginx支持HTTP/2。

请参考Apache的”将CentOS的Apache仅通过包进行HTTP/2支持”。

Nginx可以被解释为”引擎X”。

Nginx从1.9.5版本开始支持HTTP/2。

仓库

在 EPEL 存储库和 Nginx 官方存储库中,都可以安装 Nginx 1.12.2,但配置文件等内容是不同的。

EPEL 仓库

yum -y install epel-release && yum -y update && yum -y install nginx
sed -i'/^#    / s/^#//' /etc/nginx/nginx.conf

您可以通过EPEL存储库安装1.12.2版本。
EPEL存储库的配置文件/etc/nginx/nginx.conf中包含有关SSL的注释示例,并可以直接取消注释并使用它。

Nginx官方软件仓库

cat << "_EOF_" > /etc/yum.repos.d/nginx.repo && yum -y install nginx
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
_EOF_
cat << "_EOF_" > /etc/nginx/conf.d/default-ssl.conf
server {
    listen       443;

    location / {
        root   /usr/share/nginx/html;
        index  index.html;
    }

    ssl on;
    ssl_certificate     /etc/pki/nginx/server.crt;
    ssl_certificate_key /etc/pki/nginx/private/server.key;
}
_EOF_

由于Nginx官方仓库的配置文件中没有SSL配置示例,因此我们需要添加一个新的配置文件并进行描述。

SSL证书生成

mkdir -p /etc/pki/nginx/private
make -f /etc/pki/tls/certs/Makefile /etc/pki/nginx/server.crt
openssl rsa -in /etc/pki/nginx/server.key -out /etc/pki/nginx/server.key
mv -v /etc/pki/nginx/{,private/}server.key

可以使用OpenSSL中包含的Makefile来创建测试证书。

防火墙D

firewall-cmd --add-service=http{,s} --permanent && firewall-cmd --reload && firewall-cmd --list-services

启动和自动启动设置

systemctl start nginx && systemctl enable $_

请在浏览器中确认

nginx.png

在开发者工具的网络选项卡中可以确认协议为h2。

https://www.nginx.com/blog/nginx-1-9-5/⇨
https://www.nginx.com/blog/nginx-1-9-5/⇨
bannerAds