прокси nginx весь трафик к удаленному nginx - PullRequest
36 голосов
/ 25 марта 2011

у меня 2 сервера,

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

  2. с 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 ]

93 голосов
/ 27 октября 2011

для других. Ответ для темы - настроить nginx как:

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;
    }
}
1 голос
/ 13 апреля 2016

Вы можете использовать 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;
}

тогда вы можете использовать куки или заголовок для установки запроса:

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;
    }
...