您好,登錄后才能下訂單哦!
這篇文章主要介紹“nginx怎么配置域名啟用http2協議”,在日常操作中,相信很多人在nginx怎么配置域名啟用http2協議問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”nginx怎么配置域名啟用http2協議”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
HTTP 2.0即超文本傳輸協議 2.0,是下一代HTTP協議。是由互聯網工程任務組(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小組進行開發。是自1999年http1.1發布后的首個更新,HTTP/2 協議是從 SPDY 演變而來,SPDY 已經完成了使命并很快就會退出歷史舞臺(例如 Chrome 將在「2016 年初結束對 SPDY 的支持」;Nginx、Apache 也已經全面支持 HTTP/2 ,并也不再支持 SPDY),一般的大家把 HTTP2 簡稱為 h3,盡管有些朋友可能不怎么愿意,但是這個簡稱已經默認化了,特別是體現在瀏覽器對 HTTP2 都是這個簡寫的。
普通的 HTTPS 網站瀏覽會比 HTTP 網站稍微慢一些,因為需要處理加密任務,而配置了 h3 的 HTTPS,在低延時的情況下速度會比 HTTP 更快更穩定!
現在電信劫持事件頻發,網站部署了 HTTPS 加密后可以杜絕大部分劫持,但不是完全。像電子商務行業對 HTTPS 加密可是標配啊,因此部署 h3 更是勢在必行。
說明
默認編譯的 Nginx 并不包含 h3 模塊,我們需要加入參數來編譯,截止發文,Nginx 1.9 開發版及以上版本源碼需要自己加入編譯參數,從軟件源倉庫下載的則默認編譯。 Tengine 可以同時部署 h3 和 SPDY 保證兼容性,Nginx 則是一刀切不再支持 SPDY。
安裝/編譯
如果你編譯的 Nginx 不支持,那么在 ./configure
中加入:--with-http_v2_module
,如果沒有 SSL 支持,還需要加入--with-http_ssl_module
然后 make && make install 即可。
配置
主要是配置 Nginx 的 server 塊, 。 修改相關虛擬機的 .conf
文件,一般在/usr/local/nginx/conf/vhost/
或者 /etc/nginx/conf/
,具體參考你的環境指導,不懂請回復。
server { listen 443 ssl http2 default_server; server_name www.mf8.biz; ssl_certificate /path/to/public.crt; ssl_certificate_key /path/to/private.key;
注:將 server_name www.mf8.biz; 中的 www.mf8.biz 替換為你的域名。
然后通過/usr/local/nginx/sbin/nginx -t
或者 nginx -t
來檢測是否配置正確,然后重啟 Nginx ,即可。
檢驗
在 Chrome 瀏覽器上可以通過,HTTP/2 and SPDY indicator 來檢驗,如果地址欄出現藍色的閃電就是 h3
也可以在 chrome://net-internals/#http2 中檢查。注意版本要新,姿勢要帥!
配置進階
大家都知道去年的心血漏洞將 SSL 推到了風口浪尖,所以單單支持了 h3 ,我們任然需要對 SSL 做一些安全的優化!
配置赫爾曼密鑰
openssl dhparam -out dhparam.pem 2048 // 在 ssh 運行, openssl 生成 2048 位的密鑰而不是當作參數寫入 nginx.conf 文件。 ssl_dhparam /path/to/dhparam.pem; //在 .conf 中配置
禁止不安全的 SSL 協議,使用安全協議
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
禁止已經不安全的加密算法
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
緩解 BEAST 攻擊
ssl_prefer_server_ciphers on;
*啟用 HSTS*
此舉直接跳過 301 跳轉,還降低了中間人攻擊的風險!配置在 .conf 中即可
add_header Strict-Transport-Security max-age=15768000;
*301 跳轉*
80 端口跳轉到 443 端口
server { listen 80; add_header Strict-Transport-Security max-age=15768000;return 301 https://www.yourwebsite.com$request_uri; }
緩存連接憑據
ssl_session_cache shared:SSL:20m; ssl_session_timeout 60m;
OCSP 縫合
ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/nginx/cert/trustchain.crt; resolver 233.5.5.5 233.6.6.6 valid=300s;
到此,關于“nginx怎么配置域名啟用http2協議”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。