Ubuntu
如何使用 varnish 與 nginx 作為 SSL 終止符並使用 http 到 https 轉發與 nginx
我已經安裝了 varnish 和 nginx,並使用讓我們加密 SSL 來保護我的網站。我針對 nginx cgi 記憶體測試了清漆,我發現清漆在我的案例(wordpress)中要快一些。所以我需要一些幫助,了解如何使用 nginx 進行帶有清漆的 SSL 終止以及如何將 http 轉發到 https,因為我的網站僅是 https。我正在執行 ubuntu 18.04 請幫幫我!
它在 nginx 中給出了我的錯誤(埠 80 已在使用中)
請幫我!
假設
- Nginx 在埠 443上執行一個 vhost來處理傳入的 HTTPS 請求
- Nginx 有一個執行在80 埠的虛擬主機來處理傳入的 HTTP 請求並將它們重定向到 Varnish
- Varnish 在埠 6081上執行,位於 HTTPS Nginx 虛擬主機後面
- Nginx 可能還會在埠 8080上執行一個虛擬主機,它不進行代理,但充當實際的網路伺服器,提供文件或 PHP 請求。
如您所見,我的設置與https://www.linode.com/docs/websites/varnish/use-varnish-and-nginx-to-serve-wordpress-over-ssl-and-中的設置略有不同http-on-debian-8/。那是因為我已經使用單獨的 Nginx 虛擬主機處理了 HTTP 到 HTTPS 的重定向。
在這種情況下,Varnish 監聽的不是 80 埠,而是 6081。
HTTPS 虛擬主機
這是處理 HTTPS 連接的 Nginx虛擬主機的範例:
server { listen 443 ssl; keepalive_timeout 70; server_name example.com www.example.com; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_certificate ssl.crt; ssl_certificate_key ssl.key; ssl_session_cache shared:SSL:20m; ssl_session_timeout 4h; access_log /var/log/nginx/example.com-access.log; error_log /var/log/nginx/example.com-error.log; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:6081; proxy_http_version 1.1; } }
HTTP 到 HTTPS 重定向虛擬主機
這是一個將 HTTP 重定向到 HTTPS 的片段:
server { server_name example.com www.example.com; listen 80; rewrite "^/$" https://example.com permanent; rewrite "^/(.+)$" http://example.com/$1 permanent; }
編輯內容
虛擬主機已被編輯並包含範例值。
server_name
請在表達式中相應地替換主機名。還請確保
ssl_certificate
和ssl_certificate_key
語句指向實際存在的文件。