HTTP/2 是 HTTP 网络协议的主要修订版本,其专一于 HTTP 协议的性能改进。HTTP/2 协议的目标是减小延迟,而且容许在 Web 浏览器和服务器之间的一个链接上并行发起多个请求,所以 Web 应用程序会更快。在本篇教程中,咱们将像你展现如何在安装有 Ubuntu 或 CentOS 做为操做系统的 Linux VPS 上使用开启 Nginx 的 HTTP/2 协议。若是你使用 Apache,你能够查看咱们的另外一篇教程:如何在 Ubuntu 上开启 Apache 的 HTTP/2 协议[1]。html
为了可以按照本篇教程最终在服务器上启用 HTTP/2 协议,你须要先安装好 Nginx 。而且确保功能正常并且配置没有错误。你可使用下面的命令来检查一下:linux
sudo nginx -t
此外,你须要有服务器的 root 访问权限,或者至少有一个具备 sudo 权限的非 root 系统用户,以便你在修改 Nginx 配置文件的时候不会出现权限问题。最后你须要有一个域名和一个颁发给这个域名的有效的 SSL 证书。nginx
为了在 Ubuntu VPS 上开启 Nginx 的 HTTP/2 协议,你须要编辑默认的 Nginx 的服务(server
)块,咱们使用的是 nano
,你可使用你本身的文本编辑器。apache
sudo nano /etc/nginx/sites-available/default
增长下面的服务块:ubuntu
server { server_name domain.com www.domain.com; listen 443 ssl http2 default_server; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } ssl_certificate /etc/nginx/ssl/domain.com.crt; ssl_certificate_key /etc/nginx/ssl/domain.com.key; } server { listen 80; server_name domain.com www.domain.com; return 301 https://$server_name$request_uri; }
确保 domain.com
替换成你真正的域名。 此外,应正确设置文档根(root
)目录,还有 SSL 证书和密钥的路径。centos
当你编辑完成这个服务块以后,须要保存并关闭文件。使用如下命令检查 Nginx 配置是否有错误:浏览器
sudo nginx -t
为了刚刚的改变生效,须要重启 Nginx:服务器
sudo systemctl restart nginx.service
若是你想为另外一个域名开启 HTTP/2 协议,你能够查看咱们的博客如何在 Ubuntu 和 CentOS 上设置 Nginx 服务块[2]。网络
为了在 CentOS VPS 开启 Nginx 的 HTTP/2 协议,你须要按照 Ubuntu 上彻底相同的步骤作。惟一的不一样点是 Nginx 块文件的位置。为了在 CentOS 上编辑默认的 Nginx 服务块,你须要进入 /etc/nginx/conf.d
这个文件夹。dom
# nano /etc/nginx/conf.d/default.conf
再次检查配置是否有错误,保存并关闭文件,而后使用如下命令从新启动 Nginx 服务:
# systemctl restart nginx.service
为了检测 Nginx 的 HTTP/2 协议是否开启成功,你可使用一些在线 HTTP/2 检测工具