nginx 多级7层代理安装配置
编译安装
yum install zlib-devel -y
wget https://nginx.org/download/nginx-1.15.12.tar.gz
tar -zxf nginx-1.15.12.tar.gz
./configure --with-stream --prefix=/usr/local/nginx-1.15.12
make && make install
cd /usr/local/ && ln -s nginx-1.15.12 nginx
启动脚本
cat > /etc/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx proxy
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -p /usr/local/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -p /usr/local/nginx
ExecReload=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -p /usr/local/nginx -s reload
PrivateTmp=true
Restart=always
RestartSec=5
StartLimitInterval=0
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
配置文件
[root@wsjy-proxy01 conf]# cat nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; sendfile on; keepalive_timeout 65; upstream wsjy-proxy { hash $remote_addr consistent; server 10.101.99.121:30080; server 10.101.99.122:30080; server 10.101.99.123:30080; } server { listen 80; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://wsjy-proxy; proxy_set_header Host $http_host; proxy_set_header Connection close; proxy_redirect off; } access_log logs/http-proxy-80.log main; } }
多级代理配置
重点需将 http_host 变量传递至后端,否则可能到第二级代理会找不到资源。
proxy_set_header Host $http_host;
proxy_set_header Connection close;