Https访问nginx,如何重定向一个http地址

old_king
  • 102

前段访问一个https协议的地址,但是后端只提供了http协议的,如何使用nginx来进行反向代理?

回复
阅读 12.8k
6 个回答
chanywn
  • 724
✓ 已被采纳

反向代理不就行了

server{
    listen 443;
    location / { 
       proxy_pass http://my_web_app; 
    }
 }   
server {
    listen      80;
    server_name    my.domain.com;
    [....]
}

server {
    listen      443 ssl;
    server_name    my.domain.com;
    return      301 http://$server_name$request_uri;
}

简化的Nginx配置文件,楼主可以参考一下

你为什么不直接提供 https 协议

你可以监听443端口,然后再这个监听里面重定向= =哈哈我猜的,我没这么玩过。。。

利用通配符匹配相应的路由,然后跳转

server {
  # 省略部分...
  listen       443;
  server_name  domain.com;

  # 如果后端接口格式类似这样的话 /api/users  /api/login
  location ^~ /api/ {
    proxy_pass http://domain.com:12345;
  }
}

后端必须提供https访问才能重定向。
所以你需要申请合法的证书,配置nginx提供https协议。
不过,这样就没必要做跳转了,直接增加https协议即可。

宣传栏