我正在使用带 SSL 的 nginx,我想总是重定向到 www,无论请求是 http 还是 https。我只想重定向到相应的协议 www 版本。
我的 80 端口服务器块运行良好。在我的第一个服务器块下,我有...
server {
listen 80;
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
并且这工作正常。但是对于我的 https 端口 443 服务器块,我里面有各种关于ssl on
要使用的不同密码的信息。
我真的不想做一些愚蠢的事情来搞砸与安全相关的任何事情..所以我的问题是关于端口 443 的这个块......
server {
listen 443;
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
}
我还需要什么吗?我还需要ssl on
其他任何与安全相关的东西吗?如果他们访问非 www,这是否意味着它以不安全的方式传输请求或其他什么(即使是在重定向的一瞬间?)
只是想确保我拥有的东西是牢固安全的。它似乎可以工作,但我想再检查一下。
谢谢!
答案1
是的;几乎每当您有“listen 443”时,您也需要“ssl on”。
请注意,您可以在同一个服务器定义中同时拥有这两者:
server {
listen 80;
listen 443 ssl;
server_name example.com;
return 301 $scheme://www.example.com$request_uri;
[... ssl config ...]
}