Mic*_*ael 0 nginx nginx-config
我在工作中维护了几个应用程序,并注意到一些员工能够使用这些应用程序的非安全路径,例如:example.com, www.example.com。使用这些路径中的任何一个都会将它们定向到该HTTP路径而不是,除非它们在 url 中HTTPS指定。HTTPS我们目前使用nginx作为我们的网关,但我没有对我们的进行初始配置nginx gateway,所以我真的不知道什么有效,什么无效。
这是我们的 nginx.conf 文件的片段
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...
}
Run Code Online (Sandbox Code Playgroud)
我尝试在 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;
}
}
Run Code Online (Sandbox Code Playgroud)
我重新加载了nginx更正,但仍然能够连接到http路径,而无需重定向到https. 我不知道这是否与 server_name 有关,localhost因为我只在网上看到了它们重定向到实际域名的示例,但这就是我们的应用程序的设置方式,我不知道是否要更改它将对我们应用程序的连接产生影响。如果有人对我如何使重定向正常工作有任何想法或建议,那就太好了。谢谢!
你缺少最后的分号,你也应该摆脱 proxy_pass 因为它会覆盖行为。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
location / {
return 301 https://$host$request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3849 次 |
| 最近记录: |