【发布时间】:2018-06-22 04:07:41
【问题描述】:
我已将 nginx 配置为将流量转发到快速服务器,并希望通过将指向 http:// 的流量重定向到 https:// 来强制使用 SSL。我已经对该主题进行了广泛的谷歌搜索,但无法使其正常工作。 HTTPS 工作正常,但 HTTP 也正常 - 重定向似乎没有任何效果。
server {
listen 80;
listen [::]:80;
server_name my.domain www.my.domain;
return 301 https://my.domain$request_uri;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl;
server_name my.domain www.my.domain;
ssl_certificate /home/user/my_domain.crt;
ssl_certificate_key /home/user/my_domain.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/mydomain.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass https://localhost:3000;
proxy_read_timeout 90;
proxy_redirect https://localhost:3000 https://my.domain;
}
}
【问题讨论】:
-
假设您使用
nginx reload|restart重新加载配置,nginx -t确保配置正确,nginx -T确保看到配置。 -
似乎 reload 不是一个有效的命令,-T 也不是。我在 Ubuntu 14.04 上使用最新的 nginx。 -t 报告配置正常,当我重新启动服务时正在应用其他更改