Nginx
Nginx SSL 重寫到本地主機
我想將 localhost 請求重定向到 HTTPS。這就是我的 .conf 的樣子:
server { listen 80; listen 443 ssl; ssl_certificate /etc/ssl/localhost.crt; ssl_certificate_key /etc/ssl/localhost.key; server_name localhost; return 301 https://$server_name$request_uri; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html =404; } }
我在 Docker 容器中執行它,
-p 80:80 -p 443:443
但從瀏覽器呼叫伺服器會導致https://localhost/
呼叫循環。
您
https
和http
伺服器共享相同的配置塊,它告訴 nginx 重定向到https://$server_name$request_uri
地址。這就是重定向循環的原因。您需要有一個單獨的
server
塊https
,您可以在其中提供實際內容,並且您只有http
塊中的重定向。在您的情況下,配置將如下所示:
server { listen 80; server_name localhost; return 301 https://$server_name$request_uri; } server { listen 443 ssl; ssl_certificate /etc/ssl/localhost.crt; ssl_certificate_key /etc/ssl/localhost.key; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html =404; } }