登录

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

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

# Linux
高洛峰 高洛峰 2491 天前 937 次浏览

全部回复(6) 我要回复

  • 淡淡烟草味

    淡淡烟草味2017-06-24 09:46:27

    反向代理不就行了

    server{
        listen 443;
        location / { 
           proxy_pass http://my_node_app; 
        }
     }   

    回复
    0
  • 迷茫

    迷茫2017-06-24 09:46:27

    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配置文件,楼主可以参考一下

    回复
    0
  • 大家讲道理

    大家讲道理2017-06-24 09:46:27

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

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-24 09:46:27

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

    回复
    0
  • 三叔

    三叔2017-06-24 09:46:27

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

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

    回复
    0
  • 为情所困

    为情所困2017-06-24 09:46:27

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

    回复
    0
  • 取消 回复 发送