Nginx重定向到https需要页面刷新

时间:2015-06-15 13:20:30

标签: http redirect nginx https

我通过互联网查看教程以重定向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中的代码

我从https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-with-ssl-as-a-reverse-proxy-for-jenkins

获得了此代码
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?;

}

0 个答案:

没有答案