nginx正向代理

时间:2024-03-01 08:13:48

场景:
假设我们有ABC三台服务器,三台服务器都在一个子网内,且只有服务器A可以访问外网。而服务器BC无法访问外网。
现在我们需要在服务器上安装Nginx服务,并进行配置,以使BC服务器可以以A服务为代理访问外网。

1、nginx的安装
nginx下载地址
https://nginx.org/en/download.html

https所需模块
https://gitcode.com/chobits/ngx_http_proxy_connect_module/overview?utm_source=csdn_github_accelerator&isLogin=1

2、修改配置文件

修改nginx配置conf文件,把下面的代码加入http配置模块中

server 
{ 
  listen 8000; # 实际地址的端口号 
  resolver 8.8.8.8; # 几乎没啥用 
  proxy_connect; 
  proxy_connect_allow  8000 8500; # 指定端口映射范围 
  proxy_connect_connect_timeout 10s; 
  proxy_connect_read_timeout 10s; 
  proxy_connect_send_timeout 10s; 
  location / { 
    proxy_pass https://huaxinzhanfang.com:8000; # 实际的地址域名:端口号 
    proxy_set_header Host $host; 
  } 
}

重启nginx服务,如果没有报错,说明配置生效。
在BC服务器(每个都要设置)上做配置,

vim /etc/profile
export http_proxy=服务器A内网地址:8000
export https_proxy=服务器A内网地址:8000
export no_proxy=10.26.2.36,域名

3、验证
进B或C服务器,测试,测试命令及测试结果如下

通过代理访问*局端
curl -vkx 代理IP:代理端口 需要访问的地址或者域名
curl -vkx 192.168.131.130:63128 https://61.178.20.147:443

参考:
https://mp.weixin.qq.com/s/K6sHi5zQMNn2ayu8p_m9ug
https://baijiahao.baidu.com/s?id=1695463575498532241

https://blog.csdn.net/luChenH/article/details/107553493

https://blog.51cto.com/liqingbiao/2069726

http://www.178linux.com/78711