Nginx не может перенаправить на контейнер докеров

У меня есть настройка

docker-compose:

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 } }

docker-compose 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 | 2018/04/29 14:57:22 [ошибка] 9 # 9: * 28 "/etc/nginx/html/index.html" не найден (2: нет такого файла или каталога), клиент: 172.19.0.1, server:, request: «GET / HTTP / 1.1», host: «localhost: 1337»

У него есть одно задание: перенаправить все_from_outside: 1337 на internal_container: 1337. Почему на Земле он пытается загрузить /etc/nginx/html/index.html?

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

/ # 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 в 22:33

2 ответа

Спасибо Томасу за то, что он направился к каналу irc, ребята дали мне правильный намек. Проблема была в

location ~ ^/(.*)/ {

. Этого было достаточно, чтобы упростить ее до

location ~ / {

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

1
ответ дан 17 July 2018 в 15:45

Спасибо Томасу за то, что он направился к каналу irc, ребята дали мне правильный намек. Проблема была в

location ~ ^/(.*)/ {

. Этого было достаточно, чтобы упростить ее до

location ~ / {

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

1
ответ дан 23 July 2018 в 16:44

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

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