我想让我的网站只使用HTTPS。我查看了所有的堆栈溢出,并尝试了许多建议的设置,为网站的nginx设置文件,但我仍然不能使所有的地址组合工作。我需要在文件中修改什么才能让它正常工作?
这两个地址组合不会重定向-
这是设置文件的样子-
server {
listen [::]:80;
server_name www.example.com;
return 301 https://$host$request_uri;
}
server {
listen [::]:80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen [::]:443 default_server ipv6only=off;
server_name example.com www.example.com;
# rest of config file...
}发布于 2015-03-09 05:58:22
我通过以下方式在服务器上完成了这一任务:
server {
listen 80;
server_name example.com;
rewrite ^/(.*) https://example.com/$1 permanent;
}乍一看,您的配置看起来还不错,但是 directive documentation确实注意到了在您的配置中会遇到的旧版本的nginx的一些限制。
最后,在安全服务器配置中,您可以包含一个https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security指令,使客户端将来只能通过TLS连接到您的域。
add_header Strict-Transport-Security max-age=31536000;发布于 2016-03-30 23:27:54
下面的配置将example.com重定向到https://example.com
server {
listen 80;
server_name *.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name *.example.com;
[....]
}但是,如果要将所有域重定向到https:
发布于 2016-03-31 02:48:46
你可以这样用
server {
listen 192.168.1.1:443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
...
}
server {
listen 192.168.1.2:443 ssl;
server_name www.example.org;
ssl_certificate www.example.org.crt;
...
}servers.html
https://stackoverflow.com/questions/28930410
复制相似问题