Как: NGINX Обратный прокси-подкаталоги несколько экземпляров - PullRequest
0 голосов
/ 09 апреля 2020

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

В конечном итоге я хочу, чтобы два экземпляра mopidy работали в одной сети docker. Мне нужно nginx, чтобы nginx обратился к ним соответствующим образом ie: www.example.com/music1 -> первый экземпляр mopidy. Если я go в $ 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 /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 - хотя сайт виден отсюда ...

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

...