2016-11-08 3 views
0

Я пытаюсь заставить 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" 
+0

Пожалуйста, поделитесь также информацией о том, как вы настраиваете контейнеры 'nginx' и' dashboard' (например, файл 'docker-compose.yml'). – ronkot

+0

Если это может помочь, я хотел бы сделать почти то же самое: http://stackoverflow.com/questions/32195108/docker-run-apache-on-host-and-container-for-different-websites/32209615# 32209615 Это не дубликат, но это связано, я бы сказал. – AntoineB

+0

спасибо, ребята, я обнаружил, что проблема на самом деле не в nginx, а на панели инструментов. Что странно, потому что он привык работать очень хорошо. Вернемся к исследованию! –

ответ

0

Nginx работает как задумано. Я обнаружил, что при смене прокси-сервера на example.com он работает нормально. Это должно быть что-то, что изменилось на приборной панели, которая все испортила.