一、背景
公司办公环境和生产环境网络不通,有时为了访问线上的接口,不得不登到生产环境的机器去curl。可是我想在办公网络环境下通过postman访问接口。这时可以找一台既可以访问生产环境,又可以被办公网络访问的服务器,在上面搭建一个代理。
二、搭建代理服务器
2.1 下载nginx
docker pull nginx
2.2 配置nginx
mkdir -p /data/deploy/nginx/logs
mkdir -p /data/deploy/nginx/conf
mkdir -p /data/deploy/nginx/html
/data/deploy/nginx/conf/nginx.conf 配置文件中写入以下内容
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format custom_log_format '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"' ' "$http_cookie"';
access_log /var/log/nginx/access.log custom_log_format;
server {
listen 80;
location / {
set $backend_scheme $scheme;
set $backend_host $http_host;
set $backend_uri $request_uri;
proxy_pass $backend_scheme://$backend_host$backend_uri;
proxy_set_header Host $backend_host;
proxy_set_header User_Agent $http_user_agent;
proxy_set_header Cookie $http_cookie;
proxy_set_header Connection $http_connection;
proxy_set_header Accept $http_accept;
proxy_set_header Accept-Language $http_accept_language;
proxy_set_header Accept-Encoding $http_accept_encoding;
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
启动docker,8885端口可根据自身情况更换。
docker run \
-p 8885:80 \
--name nginx \
-v /data/deploy/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/deploy/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/deploy/nginx/logs:/var/log/nginx \
-v /data/deploy/nginx/html:/usr/share/nginx/html \
-d nginx:latest
三、配置postman
在postman 设置 -> Proxy 中配置代理信息。 Proxy Server 填入docker所在的机器的ip,端口填入docker的映射端口。
四、大功告成
可以访问生产环境的服务了。