1. 程式人生 > 其它 >nginx 二次代理轉發

nginx 二次代理轉發

一、背景
近期部署專案時遇到一個問題,由阿里雲解析到一個公網iP,由該公網ip的nginx進行轉發。但轉發時,該專案為前後端分離,需要解析到遠端伺服器的xxx目錄,這通過一個nginx轉發不好解決。通過第一個nginx轉發到遠端伺服器的nginx埠,由遠端伺服器的nginx進行本地轉發即可。
二、步驟
1.比如遠端伺服器內網ip為192.168.10.11,ip公網ip伺服器的nginx轉發到192.168.10.11:的80埠(nginx埠)。

upstream config_upstream{
server 192.168.10.11:80 max_fails=3 fail_timeout=3s weight=10;
}

server {
listen 80;
server_name config.xxxx.com;

location / {
proxy_next_upstream error timeout invalid_header http_500 http_503;
proxy_pass http://config_upstream;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
#proxy_send_lowat 12000;
proxy_buffer_size 128k;
proxy_buffers 8 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
}
}



2.到遠端伺服器192.168.10.11上安裝nginx進行轉發。

upstream config_upstream{
server 127.0.0.1:9990 max_fails=3 fail_timeout=3s weight=10;
}

server {
listen 80;
server_name config.xxxx.com;


location / {
root /data2/java/deploy/web/disconf/html;
if ($query_string) {
expires max;
}
}
location ~ ^/(api|export) {
proxy_next_upstream error timeout invalid_header http_500 http_503;
proxy_pass http://config_upstream;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
#proxy_send_lowat 12000;
proxy_buffer_size 128k;
proxy_buffers 8 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
}
}


原文連結:https://blog.csdn.net/qq_33633013/article/details/102958596