如何在Ubuntu和CentOS上啟用Nginx的HTTP/2 協(xié)議支持
HTTP/2 是 HTTP 網絡協(xié)議的主要修訂版本,其專注于 HTTP 協(xié)議的性能改進。HTTP/2 協(xié)議的目標是減少延遲,并且允許在 Web 瀏覽器和服務器之間的一個連接上并行發(fā)起多個請求,因此 Web 應用程序會更快。在本篇教程中,我們將像你展示如何在安裝有 Ubuntu 或 CentOS 作為操作系統(tǒng)的 Linux VPS 上使用開啟 Nginx 的 HTTP/2 協(xié)議。如果你使用 Apache,你可以查看我們的另一篇教程:如何在 Ubuntu 上開啟 Apache 的 HTTP/2 協(xié)議。
必備條件
為了能夠按照本篇教程最終在服務器上啟用 HTTP/2 協(xié)議,你需要先安裝好 Nginx 。并且確保功能正常而且配置沒有錯誤。你可以使用下面的命令來檢查一下:
- sudo nginx -t
此外,你需要有服務器的 root 訪問權限,或者至少有一個具有 sudo 權限的非 root 系統(tǒng)用戶,以便你在修改 Nginx 配置文件的時候不會出現權限問題。***你需要有一個域名和一個頒發(fā)給這個域名的有效的 SSL 證書。
在 Ubuntu 上開啟 Nginx 的 HTTP/2 協(xié)議
為了在 Ubuntu VPS 上開啟 Nginx 的 HTTP/2 協(xié)議,你需要編輯默認的 Nginx 的服務(server)塊,我們使用的是 nano,你可以使用你自己的文本編輯器。
- sudo nano /etc/nginx/sites-available/default
增加下面的服務塊:
- 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 證書和密鑰的路徑。
當你編輯完成這個服務塊之后,需要保存并關閉文件。使用以下命令檢查 Nginx 配置是否有錯誤:
- sudo nginx -t
為了剛剛的改變生效,需要重啟 Nginx:
- sudo systemctl restart nginx.service
如果你想為另一個域名開啟 HTTP/2 協(xié)議,你可以查看我們的博客如何在 Ubuntu 和 CentOS 上設置 Nginx 服務塊。
在 CentOS 上開啟 Nginx 的 HTTP/2 協(xié)議
為了在 CentOS VPS 開啟 Nginx 的 HTTP/2 協(xié)議,你需要按照 Ubuntu 上完全相同的步驟做。唯一的不同點是 Nginx 塊文件的位置。為了在 CentOS 上編輯默認的 Nginx 服務塊,你需要進入 /etc/nginx/conf.d 這個文件夾。
- # nano /etc/nginx/conf.d/default.conf
再次檢查配置是否有錯誤,保存并關閉文件,然后使用以下命令重新啟動 Nginx 服務:
- # systemctl restart nginx.service
為了檢測 Nginx 的 HTTP/2 協(xié)議是否開啟成功,你可以使用一些在線 HTTP/2 檢測工具。