В настоящее время я запускаю приложение для создания докеров с 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, которые поступают из соединения.