Docker с nginx прокси не работает, он перенаправляет на внутренний хост - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть структура контейнеров, доступ к которым в основном осуществляется извне с помощью основного контейнера с nginx, работающим в качестве обратного прокси.

Проблема заключается в том, что при попытке войти в подпапку он перенаправляет мне на внутренний URL, например:

Если я пытаюсь получить доступ к "http://php.example.com/", он работает правильно, но если я пытаюсь получить доступ "http://php.example.com/users/ «Затем он перенаправляет меня на« http://php_container », который является именем моего контейнера в php.

My docker -compose.yml выглядит следующим образом:

version: '2.1'

networks:
  custom_network:

services:

  reverse_proxy:
    container_name: proxy_container
    image: nginx:1.17.9
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./config/nginx:/etc/nginx
    networks:
      - custom_network
    command: nginx -g 'daemon off;'


  php:
    container_name: php_container
    image: php:7.4.4-apache
    volumes:
      - "./app/php:/var/www/html"
    networks:
      - custom_network

Моя конфигурация в nginx выглядит следующим образом:

server {

  listen 80;

  server_name php.example.com;

  location / {
    proxy_pass         http://php_container:80;
    proxy_redirect     off;
  }

}

server {

  listen 443;

  server_name php.example.com;

  location / {
    proxy_pass          http://php_container:443;
    proxy_redirect      off;
  }

}

Буду признателен за любую помощь, заранее спасибо.

1 Ответ

0 голосов
/ 28 апреля 2020

Насколько я помню, вы должны использовать имя службы, а не имя контейнера, поэтому измените файл конфигурации http://php_container: 80 ; до http://php: 80 ;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...