Nginx, не удающийся перенаправить к контейнеру докера

У меня есть установка

докер - сочиняет:

nginx:
    restart: always
    build: nginx/.       // loads nginx:alpine image + copies the config
    ports:
        - 80:80
        - 1337:1337
    links:
        - rose:rose

rose:
    build: rose/.        // simple website, based on node:latest
    restart: always
    expose:
        - 1337

nginx.conf:

upstream docker-rose {
    server rose:1337;
}

server {
    listen 0.0.0.0:1337;

    gzip on;                                  // + some other gzip crap

    location ~ ^/(.*)/ {

        proxy_pass http://docker-rose;
        proxy_redirect     off;

        proxy_set_header Host $http_host;      // + some other proxy headers thingy
    }
}

докер - составляет PS:

nginx_1          nginx -g daemon off;             Up       0.0.0.0:1337->1337/tcp, 0.0.0.0:80->80/tcp 
rose_1           npm start                        Up       1337/tcp

Таким образом, я ожидаю, что nginx, чтобы слушать внешний порт 1337 года и передать все повысился через внутренний порт 1337 года.

Однако, когда я открываю localhost:1337 в браузере, я добираюсь

nginx_1 | 29.04.2018 14:57:22 [ошибка] 9#9: *28 "/etc/nginx/html/index.html" не найден (2: Никакой такой файл или каталог), клиент: 172.19.0.1, сервер: запрос: "ДОБЕРИТЕСЬ / HTTP/1.1", разместите: "localhost:1337"

Это имеет одно задание: перенаправить everything_from_outside:1337 к internal_container:1337. С какой стати это пытается загрузить /etc/nginx/html/index.html?

Править: Так, я получил контейнерный идентификатор через docker ps и зарегистрированный на пути docker exec -ti %id% sh. Попытка проверить с помощью ping-запросов повысилась:

/ # ping rose 
PING rose (172.19.0.11): 56 data bytes 
64 bytes from 172.19.0.11: seq=0 ttl=64 time=0.083 ms 
64 bytes from 172.19.0.11: seq=1 ttl=64 time=0.116 ms

Попытка проверить с помощью ping-запросов localhost с портом 1337 года:

/ # ping localhost:1337
PING localhost:1337 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.080 ms
0
задан 29 April 2018 в 12:33

1 ответ

Благодарен за то, что Thomas продвигает к irc каналу, парни там дали мне корректную подсказку. Проблема была с

location ~ ^/(.*)/ {

Было достаточно упростить его до

location ~ / {

Теперь это работает!

1
ответ дан 30 October 2019 в 00:28

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

Похожие вопросы: