Nginx 正向代理访问非80端口

背景

通过指定服务器访问不能直接访问的资源  

实现 

默认情况下Nginx的正向代理默认访问的服务都是常规的80端口,网上大部分的例子如下:  

server {  
    resolver 8.8.8.8; #指定DNS服务器
    listen 8000;  
    location / {  
        proxy_pass $scheme://$host$request_uri; #设定代理服务器的协议和地址  
    }  
}  

如果需要代理的服务地址包含非80端口,有人用lua实现 ,但实际没必要,例子如下

server {  
    resolver 8.8.8.8; #指定DNS服务器
    listen 8000;  
    location / {  
        proxy_pass $scheme://$http_host$request_uri; #设定代理服务器的协议和地址  
    }  
}  

关键在于nginx对于$http_*可以读取到 header参数,而http header中的host是包含端口的

说明

原生nginx不支持https代理,如果访问https网站,会报错,如果需要代理https,可以参考 ngx_http_proxy_connect_module

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值