Nginx
如何在 nginx 中強製或重定向到 SSL?
我在子域上有一個註冊頁面,例如:
https://signup.example.com
它應該只能通過 HTTPS 訪問,但我擔心人們可能會通過 HTTP 偶然發現它並獲得 404。
我在 nginx 中的 html/server 塊如下所示:
html { server { listen 443; server_name signup.example.com; ssl on; ssl_certificate /path/to/my/cert; ssl_certificate_key /path/to/my/key; ssl_session_timeout 30m; location / { root /path/to/my/rails/app/public; index index.html; passenger_enabled on; } } }
我可以添加什麼以便將去的人
http://signup.example.com
重定向到https://signup.example.com
?(僅供參考,我知道有 Rails 外掛可以強制SSL
但希望避免這種情況)
根據nginx pitfalls,最好省略不必要的擷取,
$request_uri
而是使用。在這種情況下,請附加一個問號以防止 nginx 將任何查詢參數加倍。server { listen 80; server_name signup.mysite.com; rewrite ^ https://$server_name$request_uri? permanent; }
server { listen 80; server_name signup.mysite.com; return 301 https://$server_name$request_uri; }