Linux:Nginx 正向代理实现内网访问互联网

1.环境准备:

服务器A:可上外网的内网服务器

服务器B:不可上外网的内网服务器

2.在服务器器上安装nginx及配置:

以下步骤在服务器A操作:

yum -y install gcc gcc-c++ pcre-devel pcre zlib-devel zlib openssl-devel openssl patch

获取 nginx 和 https 代理模块以及补丁包

Nginx下载官网:http://nginx.org/en/download.html

这里下载安装的是:nginx-1.20.2.tar.gz

tar -zxf nginx-1.20.2.tar.gz

cd nginx-1.20.2.tar.gz/

https 模块下载

yum install -y git

git clone https://github.com/chobits/ngx_http_proxy_connect_module.git

其中 patch 目录是补丁包存放目录,里面包含之前nginx版本对应的所有补丁包,当前对应关系如下:

patch模块:

yum install -y patch pcre pcre-devel

patch -p1 < ngx_http_proxy_connect_module/patch/proxy_connect_1018.patch

安装nginx

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=ngx_http_proxy_connect_module

make && make install

正向代理配置

编辑nginx配置文件,添加如下:

server {

listen 8443;

resolver 114.114.114.114;##代理服务器的DNS,linux查看命令为cat /etc/resolv.conf

server_name localhost;

proxy_connect;

proxy_connect_allow 443 80;

proxy_connect_connect_timeout 10s;

proxy_connect_read_timeout 10s;

proxy_connect_send_timeout 10s;

location / {

proxy_set_header Host $host;

proxy_pass $scheme://$http_host$request_uri; #设定代理服务器的协议和地址

proxy_buffers 256 4k;

proxy_max_temp_file_size 0k;

proxy_connect_timeout 30;

proxy_send_timeout 60;

proxy_read_timeout 60;

proxy_next_upstream error timeout invalid_header http_502;

}

}

然后启动nginx服务。

3.在服务器B设置:

使用命令测试:

curl -I --proxy 服务器A:8443 http://nginx.org

curl -I --proxy 服务器A:8443 https://www.baidu.com

设置全局代理

vim /etc/profile:

添加如下:

## 全局代理

http_proxy=服务器A:8443

https_proxy=服务器A:8443

ftp_proxy=服务器A:8443

export http_proxy

export ftp_proxy

export https_proxy

source /etc/profile

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值