Nginx
將所有請求重定向到 HTTPS,除了一個子目錄
我正在嘗試從自簽名證書轉移到我的 nginx 網路伺服器上的 Let’s Encrypt 證書。
目前,我將所有請求重定向到
http/80
tohttps/443
,它使用我不久前創建的自簽名證書。現在 - 據我了解,Let’s Encrypt 向埠 80 發出請求(因為我使用的是
webroot
選項certbot
)。這些請求被重定向,導致證書生成失敗。我嘗試使用以下伺服器塊來實現這一點,監聽埠 80:
server { listen 80; server_name sub.domain.tld; server_tokens off; location /.well-known { root /var/www/letsencrypt; } location / { return 301 https://$host$request_uri; } }
但無論如何,請求都會
/.well-known
被重定向到。https/443
我如何將所有請求從
http/80
to重定向https/443
,除了請求 to/.well-known/
?
試試這個:
server { listen 80; server_name sub.domain.tld; server_tokens off; root /var/www/letsencrypt; location /.well-known { try_files $uri $uri/ =404; } location / { return 301 https://$host$request_uri; } }
由於您的虛擬伺服器中沒有
try_files
條目,因此它不知道如何處理來自/.well-known
.