Назад | Перейти на главную страницу

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

В настоящее время я запускаю приложение для создания докеров с nginx впереди, обращаясь к трем отдельным приложениям докеров (flask api, angular, jupyter notebook).

У меня в настоящее время он работает, где установлены и работают localhost / api, localhost / dev и localhost / jupyter.

То, что я пытаюсь сделать, с чем у меня возникают проблемы, - это перенаправление прокси-сервера без изменения приложений angular и jupyter. Чтобы сделать вещи функциональными, мне пришлось, например, добавить c.NotebookApp.base_url = '/jupyter' для jupyter изображения и изменения <base href="/dev/"> в угловом изображении html, и я бы предпочел не делать этого.

Есть ли способ для nginx автоматически проксировать всю информацию о подключении, чтобы мне не приходилось менять исходные приложения?

Мои текущие попытки перенаправить блокнот Jupyter приводят к тому, что клиент смотрит из localhost/jupyter файлы html / css в localhost/[something].js, поэтому ошибки возникают из-за того, что правильные файлы находятся в localhost/jupyter/[something].js.

Вот мой текущий nginx.conf, который работает.

nginx.conf

http {
include /etc/nginx/mime.types;

server {

    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;

    proxy_http_version 1.1;
    proxy_cache_bypass $http_upgrade;

    ## may need mal-json/ for final
    server_name localhost;
    listen 80;

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

    location /api/ {
        proxy_pass http://api:8000/;
    }

    location /dev/ {
        proxy_pass http://angular:4200/;
    }

    location /jupyter/ {
        proxy_pass http://jupyter:8888;
    }

    location ^~ /sockjs-node/ {
        proxy_pass http://angular:4200;
    }

}

Пожалуйста, дайте мне знать, если я упускаю какую-либо информацию. В основном я хочу знать, возможно ли то, что я делаю. Я понимаю, что nginx может перенаправлять основные запросы на правильный URL-адрес, но у меня возникают проблемы со следующими запросами, такими как css / js, которые поступают из соединения.