Контейнеры обратного прокси-сервера Nginx LAN - PullRequest
0 голосов
/ 10 сентября 2018

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

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

1 Ответ

0 голосов
/ 10 сентября 2018

Не знаю, почему, но это сработало.

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;
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...