你們好!分享即關懷,咱們很樂意與你分享其餘的一些知識。咱們準備了一個 Nginx 指南,分爲三個系列。若是你已經知道一些 Nginx 知識或者想擴展你的經驗和認知,這個再合適不過了。html
咱們將告訴你 Nginx 的運做模式、蘊含的概念,怎樣經過調優 Nginx 來提升應用性能,或是如何設置它的啓動和運行。nginx
基本概念 —— 這部分須要去了解 Nginx 的一些指令和使用場景,繼承模型,以及 Nginx 如何選擇 server 塊,location 的順序。瀏覽器
性能 —— 介紹改善 Nginx 速度的方法和技巧,咱們會在這裏談及 gzip 壓縮,緩存,buffer 和超時。緩存
SSL 安裝 —— 如何配置服務器使用 HTTPS安全
建立這個系列,咱們但願,一是做爲參考書,能夠經過快速查找到相關問題(好比 gzip 壓縮,SSL 等)的解決方式,也能夠直接通讀全文。爲了得到更好的學習效果,咱們建議你在本機安裝 Nginx 而且嘗試進行實踐。服務器
SSL(Socket Secure Layer 縮寫)是一種經過 HTTP 提供安全鏈接的協議。
SSL 1.0 由 Netscape 開發,但因爲嚴重的安全漏洞從未公開發布過。SSL 2.0 於 1995 年發佈,它存在一些問題,致使了最終的 SSL 3.0 在 1996 年發佈。
TLS(Transport Layer Security 縮寫)的第一個版本是做爲 SSL 3.0 的升級版而編寫的。以後 TLS 1.1 和 1.2 出來了。如今,就在不久以後,TLS 1.3 即將推出(這確實值得期待),而且已經被一些瀏覽器所支持。
從技術上講,SSL 和 TLS 是不一樣的(由於每一個協議都描述了協議的不一樣版本),但其中使用的許多名稱是能夠互換的。性能
爲了處理 HTTPS 流量,你須要具備 SSL/TLS 證書。你能夠經過使用 Let’s encrypt 以生成免費的證書。學習
我有幾張阿里雲幸運券分享給你,用券購買或者升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,立刻就要搶光了。阿里雲
當你擁有證書以後,你能夠經過如下的方式輕易切換至 HTTPS:spa
開始監聽端口 443(當你輸入 https://sample.co 時瀏覽器將使用的默認端口)
提供證書及其密鑰
server { listen 443 ssl default_server; listen [::]:443 ssl default_server; ssl_certificate /etc/nginx/ssl/netguru.crt; ssl_certificate_key /etc/nginx/ssl/netguru.key; }
咱們也想經過調整配置實現:
僅使用 TLS 協議。因爲衆所周知的漏洞,全部的 SSL 版本都將再也不使用
使用預約義的安全的服務器密碼(相似於協議的狀況 - 那些日子只有少數密碼被認爲是安全的)
請牢記,上述設置老是在變化的。時不時從新更新是個好主意。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:!MD5; ssl_prefer_server_ciphers on; server { listen 443 ssl default_server; listen [::]:443 ssl default_server; ssl_certificate /etc/nginx/ssl/netguru.crt; ssl_certificate_key /etc/nginx/ssl/netguru.key; }
使用 HTTPS,在 TCP 之上須要增長 TLS 握手。這大大增長了此前實際數據傳輸的時間。假設你從華沙請求 /image.jpg,並接入到柏林最近的服務器: