使用Nginx搭建公网代理服务器

使用Nginx搭建公网代理服务器

1、代理nginx服务器安装

此处使用nginx-1.16.0版本

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel patch  pcre pcre-devel
wget http://nginx.org/download/nginx-1.16.0.tar.gz
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
tar xf nginx-1.16.0.tar.gz -C /usr/local/src/
cd /usr/local/src/nginx-1.16.0/
patch -p1 < /root/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_101504.patch 
#此处proxy_connect_module选择与nginx版本有关
./configure --add-module=/root/ngx_http_proxy_connect_module/
make -j 4
#我这里是4核的cpu
make install

安装说明:

1、nginx正向代理默认只支持http,

2、https的支持需借助第三方模块“ngx_http_proxy_connect_module实现;

模块GitHub地址: github.com/chobits/ngx_http_proxy_...

2、代理nginx服务器配置

#cat /usr/local/nginx/conf/nginx.conf
worker_processes  4;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
resolver 114.114.114.114;
#DNS服务器IP或者外网网关IP
    server {
        listen 6666;
        #proxy端口        
        proxy_connect;
        #调用ngx_http_proxy_connect_module模块
        location / {
            proxy_pass $scheme://$host$request_uri;
        }
    }    
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass $scheme://$host$request_uri;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

3、客户端配置代理服务器上外网

3.1、Linux

配置:

vim /root/.bashrc    #http&https代理配置到用户环境变量中去
export http_proxy=10.100.49.12:6666
export https_proxy=10.100.49.12:6666

测试:

curl  www.baidu.com
3.2、Docker

配置:

 mkdir -p /etc/systemd/system/docker.service.d
 vim /etc/systemd/system/docker.service.d/http-proxy.conf  #添加编辑docker的http代理

[Service]
 Environment="HTTP_PROXY=http://10.100.49.12:6666"

 vim /etc/systemd/system/docker.service.d/https-proxy.conf  #添加编辑docker的https代理

 [Service]
 Environment="HTTPS_PROXY=http://10.100.49.12:6666" 

docker服务重载:

 systemctl daemon-reload
 systemctl restart docker

测试:

 systemctl show --property=Environment docker  
本作品采用《CC 协议》,转载必须注明作者和本文链接
:kissing_closed_eyes: 我爱小砚 乀(ˉεˉ乀)
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!