Nginx proxy весь трафик на удаленный nginx

У меня есть 2 сервера,

  • с IP xx.xx.xx.xx, расположенным в Германии... (запуск интерфейса: nginx (статический контент), бэкэнд: Apache2)

  • с IP yy.yy.yy.yy, расположенным в Италии...

Все запросы на данный момент отправляются на сервер с IP xx.xx.xx.xx, Как я могу проксировать весь трафик с xx.xx.xx.xx на yy.yy.yy.yy с помощью nginx...

request proxy, request
Internet -> xx.xx.xx.xx(nginx) -> yy.yy.yy.yy(nginx, Apache) <- <- response proxy, response

Спасибо...

2 ответа

Для других. Ответ для темы: configure nginx like:

server { listen 80; server_name mydomain.com; location / { access_log off; proxy_pass http://mydomain.com:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
}


Вы можете использовать upsteream как:

upstream xx.xx.xx.xx:8080{ #ip_hash; server xx.xx.xx.xx:8080 max_fails=2 fail_timeout=2s; server yy.yy.yy.yy:8181 max_fails=2 fail_timeout=2s;
}

то вы можете использовать cookie или заголовок, чтобы задать запрос, например:

location /app { if ($cookie_proxy_override = "proxy-target-A") { rewrite . http://xx.xx.xx.xx:8080/app; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; break; } if ($cookie_proxy_override = "proxy-target-B") { rewrite . http://yy.yy.yy.yy:8181/webreg; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; break; } proxy_pass http://xx.xx.xx.xx:8080/webreg; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

licensed under cc by-sa 3.0 with attribution.