Как выполнить: подкаталоги обратного прокси-сервера NGINX для нескольких экземпляров

Еще один вопрос о прокси-сервере nginx. Я все это искал и много чего перепробовал. Я уверен, что на это где-то ответят, но я не могу найти его или заставить его работать для меня.

В конечном итоге я хочу, чтобы два экземпляра mopidy работали в одной сети докеров. Мне нужен nginx, чтобы nginx адресовал их соответствующим образом, например: www.example.com/music1 -> первый экземпляр mopidy. Если я перейду к $MOPIDY_IP:6680/iris локально, это должно соответствовать www.example.com/music1/iris в браузере.

Я настроил этот конфиг:

location ~/music1/(.*){

    set $upstream_app <MOPIDY_IP>;
    set $upstream_port 6680;
    set $upstream_proto http;

    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    proxy_pass $upstream_proto://$upstream_app:$upstream_port/$1;
}

Это шаг в правильном направлении, но похоже, что на сайте отсутствуют ресурсы. К сожалению, он пытается запросить их на www.example.com/iris/.js. Здесь я начинаю уходить в сорняки. Похоже, я мог бы проксировать /iris/ location так:

location /iris {

    proxy_pass http://<MOPIDY_IP>:6680/iris;
    proxy_set_header X-Forwarded-Path music1; }

Что кажется еще одним шагом в правильном направлении. Теперь добавляю это:

location ~/iris/ws(.*) {

    # include /config/nginx/proxy.conf;
    # resolver 127.0.0.11 valid=30s;
    set $upstream_app <MOPIDY_IP>;
    set $upstream_port 6680;
    set $upstream_proto http;

    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    proxy_pass $upstream_proto://$upstream_app:$upstream_port/iris/ws$1;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

Что, похоже, ничего не исправляет. На данный момент у меня есть 2 проблемы, которые я не могу решить.

  1. Как заставить работать веб-сокеты
  2. Когда я нажимаю на что-то на этой странице, мой браузер переводит меня на www.example.com/iris вместо www.example.com/music1/iris - хотя сайт виден отсюда...

Что я не так? Это может показаться очевидным, но я не понимаю, что я здесь делаю. Все это работает в паре док-контейнеров. Спасибо

0 ответов

Другие вопросы по тегам