Nginx 配置 proxy_pass 详解

一、proxy_pass 在两个模块都存在

模块语法场景场景说明官方文档
ngx_http_proxy_moduleproxy_pass url;location, if in location, limit_except设置后端代理服务器的协议(protocol)和地址(address),以及location中可以匹配的一个可选的URI。协议可以是"http"或"https"。地址可以是一个域名或ip地址和端口,或者一个 unix-domain socket 路径传送门
ngx_stream_proxy_moduleproxy_pass address;server设置后端代理服务器的地址。这个地址(address)可以是一个域名或ip地址和端口,或者一个 unix-domain socket路径。传送门

二、proxy_pass 在两个模块中的区别

模块相同不同
ngx_stream_proxy_module都是用来做后端代理的指令只能在server段使用使用, 只需要提供域名或ip地址和端口。可以理解为端口转发,可以是tcp端口,也可以是udp端口。
ngx_http_proxy_module需要在location段,location中的if段,limit_except段中使用,处理需要提供域名或ip地址和端口外,还需要提供协议,如"http"或"https",还有一个可选的uri可以配置。

三、proxy_pass的具体用法

3.1、ngx_stream_proxy_module模块的proxy_pass指令

server {
    listen 127.0.0.1:12345;
    proxy_pass 127.0.0.1:8080;
}

server {
    listen 12345;
    proxy_connect_timeout 1s;
    proxy_timeout 1m;
    proxy_pass example.com:12345;
}

server {
    listen 53 udp reuseport;
    proxy_timeout 20s;
    proxy_pass dns.example.com:53;
}

server {
    listen [::1]:12345;
    proxy_pass unix:/tmp/stream.socket;
}

3.2、ngx_http_proxy_module模块的proxy_pass 路径分析

访问地址为:http://**.**.**.**/proxy/test.html

代理配置最终访问地址

location /proxy/ {

    proxy_pass http://127.0.0.1/;

}

http://127.0.0.1/test.html

location /proxy/ {

    proxy_pass http://127.0.0.1;

}

http://127.0.0.1/proxy/test.html

location /proxy/ {

    proxy_pass http://127.0.0.1/demo/;

}

http://127.0.0.1/demo/test.html

location /proxy/ {

    proxy_pass http://127.0.0.1/demo;

}

http://127.0.0.1/demotest.html

注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!  

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA·D·WangJing

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值