只使用软件包将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 $_
请在浏览器中确认

在开发者工具的网络选项卡中可以确认协议为h2。
https://www.nginx.com/blog/nginx-1-9-5/⇨
https://www.nginx.com/blog/nginx-1-9-5/⇨
https://www.nginx.com/blog/nginx-1-9-5/⇨