使用NGINX将HTTP重定向到HTTPS
我在工作中维护了几个应用程序,并注意到一些员工能够使用这些应用程序的非安全路径,例如:example.com、www.example.com。使用这些路径中的任何一个都会将它们指向HTTP路径而不是HTTPS,除非它们在url中指定HTTPS。我们目前使用nginx作为网关,但我没有对nginx网关进行初始配置,所以我不知道什么可行,什么不可行 下面是nginx.conf文件的一个片段使用NGINX将HTTP重定向到HTTPS,nginx,nginx-config,Nginx,Nginx Config,我在工作中维护了几个应用程序,并注意到一些员工能够使用这些应用程序的非安全路径,例如:example.com、www.example.com。使用这些路径中的任何一个都会将它们指向HTTP路径而不是HTTPS,除非它们在url中指定HTTPS。我们目前使用nginx作为网关,但我没有对nginx网关进行初始配置,所以我不知道什么可行,什么不可行 下面是nginx.conf文件的一个片段 server{ listen 80 default_server; list
server{
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
location / {
proxy_pass http://localhost:3000;
}
}
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name localhost;
ssl_certificate "/etc/nginx/ssl/domain-crt.txt";
ssl_certificate_key "/etc/nginx/ssl/domain-key.txt";
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
## More configuration below this...
}
我尝试在listen 80部分中返回,但没有成功:
server{
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
return 301 https://$host$request_uri;
location / {
proxy_pass http://localhost:3000;
}
}
我重新加载了带有更正的nginx,并且仍然能够连接到http路径,而无需将其重定向到https。我不知道这是否与服务器名为localhost有关,因为我在网上只看到过一些示例,它们会重定向到实际的域名,但这就是我们的应用程序的设置方式,我不知道更改这些名称是否会对我们的应用程序的连接产生影响。如果有人对如何让重定向正常工作有任何想法或建议,那就太好了。谢谢 您缺少结尾处的分号,您还应该去掉代理传递,因为它会覆盖行为
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
location / {
return 301 https://$host$request_uri;
}
}
缺少分号可能只是这篇文章中的一个输入错误,但我将尝试您建议的方法,看看是否有效;在这里可以找到更多的文档,所以看起来我缺少了分号。输入分号并重新加载nginx解决了这个问题。不管怎样,我都会接受你的答案,因为它可能会在将来帮助别人。谢谢