nginx обрабатывает порты в цепочке proxy_pass - PullRequest
0 голосов
/ 27 февраля 2019

Я борюсь с этим с 1 дня, пробую взад и вперед и не знаю, как решить, потому что я довольно новичок в nginx.

Следующая ситуация: у меня нагрузка на веб-сайт сбалансирована за nginx, что яможет получить доступ только через SSH туннель на данный момент.Поскольку веб-инфраструктура за этим туннелем, кажется, борется, когда у меня есть порт в URL, моя идея состояла в том, чтобы установить локальный nginx, который переписывает URL, чтобы пропустить порт туннеля.Таким образом, это будет:

локальный nginx (порт 80) -> туннель -> удаленный nginx (порт 443) -> восходящий канал nginx (порты 9002 и 9003) -> веб-сайт (на apache)

Но тут возникает проблема: всякий раз, когда меня перенаправляют обратно из Google OAuth на веб-сайт, я получаю еще 301 к: 9002 или: 9003, что явно неверно для локального, потому что эти порты никогда не должны быть открыты.Я должен просто остаться на: 80.

Мои конфиги:

(локальный) Конфигурация nginx

server {
listen 80;
  server_name <domain>;

  location / {
    proxy_pass https://<host-with-tunnel>:2226;

    proxy_redirect          off;
    proxy_set_header        Host $http_host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Host $host;
    proxy_set_header        X-Forwarded-Proto $scheme;

    client_max_body_size    10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout   90;
    proxy_send_timeout      90;
    proxy_read_timeout      90;
    proxy_buffers           32 4k;
  }
}

(удаленный) nginxКонфигурация сайта

upstream myself {
    server 127.0.0.2:9002;
    server 127.0.0.3:9003;
}

server {
    listen 443 default_server ssl;
    listen [::]:443 default_server ssl;

    ...

    location ~ ^/[a-z]+/public {
            proxy_pass      http://myself;
            include /etc/nginx/proxy.conf;
    }

    proxy_next_upstream error timeout http_503 http_502 http_500 http_404 http_403;
}

server {
    listen 127.0.0.2:9002;

    location /app/public/ {
            proxy_pass http://127.0.0.1/app_a/public/;
            include /etc/nginx/proxy.conf;
    }
}

server {
    listen 127.0.0.3:9003;

    location /app/public/ {
            proxy_pass http://127.0.0.1/app_b/public/;
            include /etc/nginx/proxy.conf;
    }
}

(удаленно) /etc/nginx/proxy.conf

proxy_redirect          off;
proxy_set_header        Host $http_host;
proxy_set_header        X-Real-IP $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        X-Forwarded-Host $host;

client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;
proxy_buffers           32 4k;

Заранее спасибо за ваше время и усилия!

...