Обратный прокси-сервер nginx не заменяет IP-адрес приложения

Обратный прокси-сервер nginx не заменяет IP-адрес приложения

У меня есть приложение, работающее за nginx и, очевидно, не работающее так, как хотелось бы. Поэтому я попытался воспроизвести его в своей локальной среде.

Фон Веб-приложение работает нормально само по себе и возвращает /static/index.html в качестве страницы по умолчанию. Например, при доступеhttp://localhost:7777/возвращает /static/index.html и все работает отлично. {http://localhost:7777/static/index.html}

Проблема Когда я пытаюсь получить доступ к тому же приложению через прокси, это не работает. При доступе http://localhost/app{localhost - это имя сервера по умолчанию в nginx} приложение возвращает как обычно /static/index.html и перенаправляется tp http://localhost/static/index.htmlи возвращает 404.

Желаемая ситуация Даже если приложение находится за прокси, я должен иметь возможность увидеть приложение. Вместо http://localhost/static/index.htmlURL должно быть похоже наhttp://localhost/localhost:7777/static/index.html

nginx.conf

server {
    listen       80;
    server_name  localhost;

   location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location /app/ {
            proxy_pass http://localhost:7777/;
    proxy-redirect off;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_buffering off;
            client_max_body_size 0;
            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_pass_header       Set-Cookie;
            proxy_pass_header       P3P;
    }

Есть идеи, как этого можно добиться?

решение1

Если вы ограничите проксирование, согласно вашему nginx.conf, расположением /app/, вы не должны удивляться, что /static/index.html не будет проксироваться. Добавьте

proxy_pass http://localhost:7777/;

на место и посмотреть, что произойдет дальше.

Связанный контент