我通过互联网查看教程以重定向http - > HTTPS。 我已经解决了,但它不能100%正确地工作
我在CentOS 6.5上的环境(现在一切都设置在1台服务器中,因为它处于开发模式):
1。)1 nginx(v 1.8.0)负载均衡器(在端口443和80上运行)
2。)2 node.js express.js web服务器(在端口3000上运行)
3。)1个mongodb数据库(在端口27017上运行)
到目前为止我得到了什么
我正在尝试将用户从http重定向到负载均衡器上的https。
我希望我的node.js呈现“Hello from nodes”(已设置)
出了什么问题
当我输入https://my.domain.com时,它会呈现“Hello from nodes”(正常工作)
但是当我输入http://my.domain.com时,它会呈现“欢迎来到nginx”;但是,当我刷新浏览器时,它会呈现“Hello from nodes”
似乎我必须刷新浏览器才能重定向到https。
我希望在我输入http://my.domain.com后立即重定向到https,而不需要页面刷新
非常感谢:)
这是我在nginx v1.8.0上的/etc/nginx/conf.d/default.conf中的代码
获得了此代码server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/ssl/ffml-cert.pem;
ssl_certificate_key /etc/nginx/ssl/ffml-key.pem;
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;
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;
# Fix the “It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
proxy_redirect http://localhost:3000;
}
}
server {
listen 80;
return 301 https://$host$request_uri?;
}