Контейнеры докеров обратного прокси-сервера nginx lan

Я не могу понять, как работает обратный прокси nginx, возможно, кто-то может помочь. Допустим, мой сервер с докером в локальной сети имеет IP 192.168.0.3. У меня есть такой файл для создания докеров:

version: '2'

  angular-on-nginx:
    build: angular_client
    ports:
      - "80:80"
    volumes:
      - ./angular_client/dist:/usr/share/nginx/html
      - ./angular_client/default.conf:/etc/nginx/conf.d/default.conf

  express:
    build: express_server
    ports:
      - "4444:4444"
    volumes:
      - ./express_server/:/usr/src/app 
    links:
      - database
    depends_on:
      - database

  database:
    image: mongo
    ports:
      - "27777:27777"
    volumes:
      - ./mongodb_data:/data/db

В контейнере angular-on-nginx есть приложение angular и nginx с такой конфигурацией:

server {
    listen       80;
    server_name  localhost;

    root   /usr/share/nginx/html;
    index  index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
    }
    location /express {
        proxy_pass http://192.168.0.3:4000/;
    }   
}

но это не работает при вводе 192.168.0.3 angular веб-приложение загружается нормально и работает. При вводе 192.168.0.3:4444 экспресс-сервер дает ответ нормально, но при вводе 192.168.0.3/express получается 502 плохой шлюз. Как сделать так, чтобы при вводе 192.168.0.3/express я получал тот же результат, что и при вводе 192.168.0.3:4444?

имя_сервера localhost; Я предполагаю, что вы используете nginx как контейнер для докеров. Таким образом, localhost в основном означает указание на один и тот же контейнер докеров, и, следовательно, когда вы добавляете IP, он указывает за пределы контейнера докеров, он работает для вас. Проверить эту ссылку littlebigextra.com/install-nginx-reverse-proxy-server-docker

Abhishek Galoda 10.09.2018 12:51
0
1
403
1

Ответы 1

Понятия не имею, почему, но это сработало.

server {
    listen       80;
    listen       [::]:80;
    server_name  192.168.0.3;

    root   /usr/share/nginx/html;
    index  index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
    }
    location /express/ {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://192.168.0.3:4444;
    }   
}

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