Я пытаюсь заставить Nginx отменить прокси-соединения в пределах lan для нескольких веб-приложений, в том числе в контейнерах докеров.Nginx как обратный прокси-сервер для докерных контейнеров
Оба WebApps достижимы с proxy_pass URL
Я использую следующий dockerfile:
# Set the base image to Ubuntu
FROM ubuntu
RUN apt-get update
RUN apt-get install -y nginx
RUN rm -v /etc/nginx/nginx.conf
RUN echo "daemon off; \n\
\n\
worker_processes 1; \n\
events { worker_connections 1024; } \n\
\n\
http { \n\
\n\
server { \n\
listen 99; \n\
\n\
server_name dashboard; \n\
location/{ \n\
proxy_pass http://dashboard:80; \n\
} \n\
location /app1 { \n\
proxy_pass http://otherhostname:9000/app1; \n\
} \n\
} \n\
} \n\
" >> /etc/nginx/nginx.conf
EXPOSE 99
CMD service nginx start
При выполнении этого в качестве службы (контейнер) я могу достигнуть APP1, но не на приборной панели.
Странно, что я работал над этим раньше, и я уверен, что я не изменил ничего фундаментального для файла докеров. Я что-то упускаю?
EDIT: (Я в настоящее время выставлена приборная панель на порт 80, и я тестирование на 99 с Nginx)
Я бегом контейнера Nginx с:
docker service create \
--replicas 1 \
--name nginx \
-p 99:99 \
nginx_image
приборная панель также имеет правильный порт подвергаются.
docker service create \
--replicas 1 \
--name dashboard \
-p 80:8080 \
dashboard_image
Глядя в Nginx error.log я нашел:
2016/11/08 08:46:41 [error] 25#25: *42 upstream timed out (110: Connection timed out) while connecting to upstream, client: 10.255.0.3, server: dashboard, request: "GET/HTTP/1.1", upstream: "http://dockerhostip:80/", host: "dashboard:99"
Пожалуйста, поделитесь также информацией о том, как вы настраиваете контейнеры 'nginx' и' dashboard' (например, файл 'docker-compose.yml'). – ronkot
Если это может помочь, я хотел бы сделать почти то же самое: http://stackoverflow.com/questions/32195108/docker-run-apache-on-host-and-container-for-different-websites/32209615# 32209615 Это не дубликат, но это связано, я бы сказал. – AntoineB
спасибо, ребята, я обнаружил, что проблема на самом деле не в nginx, а на панели инструментов. Что странно, потому что он привык работать очень хорошо. Вернемся к исследованию! –