nginx反向代理的完美转发
最近笔者遇到一个情况,有一个软件默认监听是localhost
的端口,导致内网其它电脑无法使用,只能本机使用,除非该端口是监听的0.0.0.0
的端口。但是该软件没有任何配置可以设定监听为0.0.0.0
,那只能在本机开一个代理,让代理去连接该软件监听的本地端口,而代理是以0.0.0.0
监听另外一个端口。
有一个代理软件CCProxy,可以实现这样的功能,但是它是一个收费软件。其实nginx完全可以实现这样的功能,而且完全开源免费。
nginx可以实现正向代理,也可以实现反向代理。什么是正向代理?什么是反向代理?可以非常简单地理解为:正向代理就是代理在用户端(近端);反向代理就是代理在服务端(远端)。近端、远端的概念是以用户为中心的。
我们这里就是需要配置一个运行在服务器(远端)的代理——反向代理。服务端配置好代理后,其它用户就可以远程连接这个代理通信(上网)了。
非常简单的配置:
nginx.conf
:
1worker_processes 1;
2events {
3 worker_connections 1024;
4}
5stream {
6 server {
7 listen 8081; # 监听端口
8 proxy_pass 127.0.0.1:8001; # 转发目标
9 }
10}
用户端只需要连接这个代理主机的8081
端口即可。
- 原文作者:Witton
- 原文链接:https://wittonbell.github.io/posts/2025/2025-03-17-nginx反向代理的完美转发/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。