成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Ubuntu 20.04 上設(shè)置支持 HTTP/2 的 Nginx

系統(tǒng) Linux
Nginx是一個快速可靠的開源 Web 服務器。它因其低內(nèi)存占用、高可擴展性、易于配置以及對多種協(xié)議的支持而廣受歡迎。

 介紹

Nginx是一個快速可靠的開源 Web 服務器。它因其低內(nèi)存占用、高可擴展性、易于配置以及對多種協(xié)議的支持而廣受歡迎。

HTTP/2 是超文本傳輸協(xié)議的較新版本,用于在 Web 上將頁面從服務器傳送到瀏覽器。HTTP/2 是近二十年來 HTTP 的第一次重大更新:HTTP1.1 早在 1999 年就被引入公眾,當時網(wǎng)頁的大小要小得多。從那時起,互聯(lián)網(wǎng)發(fā)生了巨大的變化,我們現(xiàn)在面臨著 HTTP 1.1 的限制。該協(xié)議限制了大多數(shù)現(xiàn)代網(wǎng)站的潛在傳輸速度,因為它在隊列中下載頁面的一部分——前一部分必須在下一部分開始下載之前完全下載——而一個普通的現(xiàn)代網(wǎng)頁會下載數(shù)十個單獨的 CSS、JavaScript、和圖像資產(chǎn)。

HTTP/2 解決了這個問題,因為它帶來了一些根本性的變化:

  •  所有請求都是并行下載的,而不是在隊列中
  •  HTTP 標頭被壓縮
  •  頁面作為二進制文件傳輸,而不是作為文本文件傳輸,這樣效率更高
  •  服務器可以在沒有用戶請求的情況下“推送”數(shù)據(jù),為高延遲用戶提高速度

盡管 HTTP/2 不需要加密,但兩個最流行的瀏覽器 Google Chrome 和 Mozilla Firefox 的開發(fā)人員表示,出于安全原因,他們將僅支持 HTTP/2 用于 HTTPS 連接。因此,如果您決定設(shè)置支持 HTTP/2 的服務器,您還必須使用 HTTPS 保護它們。

本教程將幫助您設(shè)置一個支持 HTTP/2 的快速且安全的 Nginx 服務器。

先決條件

在開始之前,您需要準備一些東西:

  •  設(shè)置的 Ubuntu 20.04 服務器,包括 sudo 非 root 用戶和防火墻。
  •  Nginx 安裝在您的服務器上,您可以按照如何在 Ubuntu 20.04 上安裝 Nginx 來完成。
  •  配置為指向您的服務器的域名。
  •  為您的服務器配置的 TLS/SSL 證書。您有幾個選擇:
    •   您可以按照如何在 Ubuntu 20.04 上使用 Let's Encrypt 保護 Nginx 來從Let's Encrypt獲得免費證書。
    •   您還可以按照如何在 Ubuntu 20.04 中為 Nginx 創(chuàng)建自簽名 SSL 證書來生成和配置自簽名證書。
  •  Nginx 配置為將流量從端口重定向80到端口443,這應該包含在前面的先決條件中。
  •  Nginx 配置為使用 2048 位或更高的 Ephemeral Diffie-Hellman (DHE) 密鑰,這也應包含在先前的先決條件中。

步驟 1 — 啟用 HTTP/2 支持

如果您按照Nginx 安裝教程中的服務器塊設(shè)置步驟進行操作,則您的域中應該有一個服務器塊,并且已正確設(shè)置了指令。我們將進行的第一個更改是修改您域的服務器塊以使用 HTTP/2。/etc/nginx/sites-available/your_domainserver_name

使用nano或首選編輯器打開您的域的配置文件:

  •  sudo nano /etc/nginx/sites-enabled/your_domain

在文件中,找到listen與 port 關(guān)聯(lián)的變量443:

/etc/nginx/sites-enabled/your_domain 

  1. ...  
  2.     listen [::]:443 ssl ipv6only=on;  
  3.     listen 443 ssl;  
  4. ... 

第一個用于 IPv6 連接。第二個用于所有 IPv4 連接。我們將為兩者啟用 HTTP/2。

修改每個listen指令以包括http2:

/etc/nginx/sites-enabled/your_domain 

  1. ...  
  2.     listen [::]:443 ssl http2 ipv6only=on;  
  3.     listen 443 ssl http2;  
  4. ... 

這告訴 Nginx 在支持的瀏覽器中使用 HTTP/2。

保存配置文件并退出文本編輯器。如果您使用的是,請在出現(xiàn)提示時nano按Ctrl+Xthen,Y然后按 Enter。

每當您對 Nginx 配置文件進行更改時,您都應該使用-t運行 Nginx 內(nèi)置語法檢查命令的標志來檢查配置是否存在錯誤:

  •  sudo nginx -t

如果語法沒有錯誤,您將收到如下輸出:

sudo nginx -t 的輸出 

  1. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok  
  2. nginx: configuration file /etc/nginx/nginx.conf test is successful 

接下來,您將配置 Nginx 服務器以使用更嚴格的密碼列表來提高服務器的安全性。

步驟 2 — 刪除舊的和不安全的密碼套件

HTTP/2 有一個應該避免的舊的和不安全的密碼的阻止列表。密碼套件是描述傳輸數(shù)據(jù)應如何加密的加密算法。

您將用于定義密碼的方法取決于您為 Nginx 配置 TLS/SSL 證書的方式。

如果您使用 Certbot 獲取證書,它還會創(chuàng)建/etc/letsencrypt/options-ssl-nginx.conf包含對 HTTP/2 不夠安全的密碼的文件。但是,修改此文件將阻止 Certbot 將來應用更新,因此我們只會告訴 Nginx 不要使用此文件,我們將指定我們自己的密碼列表。

打開您的域的服務器塊配置文件: 

  1. sudo nano /etc/nginx/sites-enabled/your_domain 

找到包含該options-ssl-nginx.conf文件的行并通過#在該行的開頭添加一個字符來將其注釋掉:

/etc/nginx/sites-enabled/your_domain 

  1. # include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot<^> 

在該行下方,添加此行以定義允許的密碼:

/etc/nginx/sites-enabled/your_domain 

  1. ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; 

保存文件并退出編輯器。

如果您使用自簽名證書或使用第三方證書并根據(jù)先決條件對其進行配置,請/etc/nginx/snippets/ssl-params.conf在文本編輯器中打開該文件:

  •  sudo nano /etc/nginx/snippets/ssl-params.conf

找到以下行:

/etc/nginx/snippets/ssl-params.conf 

  1. ...  
  2. ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;  
  3. ... 

修改它以使用以下密碼列表:

/etc/nginx/snippets/ssl-params.conf 

  1. ...  
  2. ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;  

保存文件并退出編輯器。

再次使用以下nginx -t命令檢查配置是否存在語法錯誤:

  •  sudo nginx -t

如果您遇到任何錯誤,請解決它們并再次測試。

一旦您的配置通過語法檢查,請使用以下systemctl命令重新啟動 Nginx :

  •  sudo systemctl reload nginx.service

重新啟動服務器后,讓我們驗證它是否有效。

步驟 3 — 驗證 HTTP/2 是否已啟用

讓我們確保服務器正在運行并使用 HTTP/2。

使用該curl命令向您的站點發(fā)出請求并查看標頭:

  •  curl -I -L --http2 https://your_domain

您將收到如下輸出: 

  1. HTTP/2 200  
  2. server: nginx/1.18.0 (Ubuntu)  
  3. date: Wed, 10 Nov 2021 17:53:10 GMT  
  4. content-type: text/html  
  5. content-length: 612  
  6. last-modified: Tue, 09 Nov 2021 23:18:37 GMT  
  7. etag: "618b01cd-264"  
  8. accept-ranges: bytes 

您還可以驗證 HTTP/2 是否在 Google Chrome 中使用。打開 Chrome 并導航到. 打開 Chrome 開發(fā)人員工具(查看->開發(fā)人員->開發(fā)人員工具)并重新加載頁面(查看->重新加載此頁面)。導航到Network選項卡,右鍵單擊以Name開頭的表標題行,然后從彈出菜單中選擇Protocol選項。https://your_domain

您將擁有一個包含(代表 HTTP/2)的新協(xié)議列h2,表明 HTTP/2 正在運行。

此時,您已準備好通過 HTTP/2 協(xié)議提供內(nèi)容。讓我們通過啟用 HSTS 來提高安全性和性能。

步驟 4  - 啟用 HTTP 嚴格傳輸安全 (HSTS)

即使您的 HTTP 請求重定向到 HTTPS,您也可以啟用HTTP 嚴格傳輸安全(HSTS) 以避免必須執(zhí)行這些重定向。如果瀏覽器找到 HSTS 標頭,它不會在給定的時間段內(nèi)再次嘗試通過常規(guī) HTTP 連接到服務器。無論如何,它將僅使用加密的 HTTPS 連接來交換數(shù)據(jù)。此標頭還保護我們免受協(xié)議降級攻擊。

再次打開您的域的服務器塊配置文件: 

  1. sudo nano /etc/nginx/your_domain 

將此行添加到包含 SSL 密碼的文件的同一塊以啟用 HSTS:

/etc/nginx/your_domain 

  1. server {  
  2. ...  
  3.     ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;  
  4.     add_header Strict-Transport-Security "max-age=15768000" always;  
  5.  
  6. ... 

在max-age以秒為單位設(shè)定。該值15768000相當于 6 個月。

默認情況下,此標頭不會添加到子域請求中。如果您有子域并希望 HSTS 應用于所有子域,則應includeSubDomains在行尾添加變量,如下所示:

/etc/nginx/your_domain 

  1. add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always; 

保存文件,然后退出編輯器。

再次檢查配置是否有語法錯誤:

  •  sudo nginx -t

最后,重新啟動 Nginx 服務器以應用更改。

sudo systemctl reload nginx.service

結(jié)論

您的 Nginx 服務器現(xiàn)在正在為 HTTP/2 頁面提供服務。如果您想測試 SSL 連接的強度,請訪問Qualys SSL 實驗室并針對您的服務器運行測試。如果一切配置正確,您應該獲得 A+ 標記以確保安全。 

 

責任編輯:龐桂玉 來源: Linux公社
相關(guān)推薦

2017-03-02 09:40:28

UbuntuCentOSNginx

2021-12-20 10:00:41

Let's EncryNginxLinux

2022-05-29 17:37:39

LinuxUbuntuPHP

2020-07-14 20:25:46

UbuntuLinux桌面應用

2021-09-18 08:00:00

Python系統(tǒng)開發(fā)

2020-08-14 07:00:00

RudderIT工具

2022-03-17 14:56:26

KubernetesMinikubeLinux

2022-09-01 08:37:50

Ubuntu發(fā)行版

2020-10-17 13:04:35

UbuntuDeepin桌面環(huán)境

2023-05-27 16:27:25

2019-08-13 16:10:38

UbuntuLinux時間同步

2021-01-21 10:21:11

NginxHTTP 3.0Linux

2021-12-16 16:50:47

NginxSSLLinux

2022-05-29 10:28:56

Ubuntusudo 密碼桌面環(huán)境

2021-07-20 08:00:00

集群Elasticsear工具

2017-05-10 09:40:57

Ubuntupm2Nginx

2020-06-15 18:40:15

Ubuntu 20.0文件夾顏色Ubuntu

2018-10-15 15:23:50

UbuntupipPython

2019-08-30 11:20:28

UbuntuVirtualBoxLinux

2023-08-08 12:38:52

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 999久久久久久久久6666 | 日韩精品一区二区三区在线 | 午夜在线免费观看视频 | 国产精品中文字幕在线观看 | 国产精品成人一区二区 | 91精品国产一区二区三区蜜臀 | 国产精品亚洲一区二区三区在线 | 狠狠色综合久久婷婷 | 日韩一级黄色片 | 久久久www| 久久99精品久久久久 | 毛片网站免费观看 | 亚洲欧美中文日韩在线v日本 | 国产亚洲精品美女久久久久久久久久 | 91精品国产色综合久久不卡98口 | 四虎在线观看 | 国产综合一区二区 | 不卡的av电影 | 麻豆av免费观看 | 亚洲一区二区三区在线播放 | 精品国产一区二区三区观看不卡 | 国产操操操| 国产精品视频在线播放 | 天天躁日日躁xxxxaaaa | 亚洲欧美一区二区三区情侣bbw | 日韩成人影院 | 综合网视频 | 久久精品二区 | av在线影院 | 免费一级欧美在线观看视频 | 人人草天天草 | 久久成人国产精品 | 日韩在线精品视频 | 国内自拍视频在线观看 | 午夜免费福利电影 | 中文字幕国产视频 | 中文字幕视频三区 | 成人网视频 | 欧美精品首页 | jvid精品资源在线观看 | 一区二区三区四区毛片 |