使用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 协议》,转载必须注明作者和本文链接
推荐文章: