Docker: nginx как прокси возвращает 502 Bad Gateway

Docker: nginx как прокси возвращает 502 Bad Gateway

Во-первых, я хотел бы сказать, что я полный новичок в Docker и управлении серверами.

Я пытаюсь создать стек на основе Docker, включающий WordPress, MariaDBи nGinxобразы.

Он nGinxбудет использоваться как обратный прокси-сервер, и именно поэтому я устанавливаю его здесь.

У меня docker-compose.ymlтак:

version: '3'

services:
  mysql:
    image: mariadb
    env_file:
      - ./.env
    volumes:
      - ./data:/var/lib/mysql

  wordpress:
    image: wordpress:php7.2
    env_file:
      - ./.env
    volumes:
      - ./wordpress:/var/www/html
    ports:
      - 42400:80
    links:
      - mysql

  nginx:
    build: ./docker/nginx
    volumes:
      - ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf
    ports:
      - 80:80
      - 443:443
    links:
      - wordpress
    depends_on:
      - wordpress

Тогда Dockerfileдля Nginxбудет так:

FROM nginx:latest

RUN mkdir -p /data/nginx/cache

VOLUME ["/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx"]

EXPOSE 80
EXPOSE 443

WORKDIR /etc/nginx

CMD ["nginx"]

И наконец, nGinxфайл конфигурации выглядит так:

daemon              off;
worker_processes    1;

events {
  worker_connections  1024;
}

http {
    sendfile on;

    gzip                on;
    gzip_http_version   1.0;
    gzip_proxied        any;
    gzip_min_length     500;
    gzip_disable        "MSIE [1-6]\.";
    gzip_types          text/plain text/xml text/css text/comma-separated-values
                        text/javascript application/x-javascript application/atom+xml;

    upstream wordpress {
        server wordpress:42400;
    }

    server {
        listen 80;
        server_name www.bimber-viral-buzz.local;

        location / {
            proxy_pass          http://wordpress;
            proxy_redirect      off;
            proxy_set_header    Host $host;
            proxy_set_header    X-Real-IP $remote_addr;
            proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header    X-Forwarded-Host $server_name;
        }
    }
}

Теперь, когда я запускаю docker-compose upи пытаюсь получить доступ к, localhost:42400я могу нормально видеть WordPress. В этом случае проблем нет, и я могу свободно перемещаться по страницам WordPress.

Затем, если я попытаюсь получить доступ кlocalhost (без указания номера порта, то есть порт 80), я получаю следующую ошибку:

Ошибка браузера

В то же время я получаю следующую ошибку в консоли:

Ошибка консоли

И наконец, если я попытаюсь напрямую получить доступ к WordPressизображению, используя назначенный IP-адрес, я получу следующий вывод:

Доступ к IP-адресу контейнера WordPress

Можете посмотреть, что я делаю не так? С утра прочитал кучу статей, ответов на stackoverflow и форумах, но так и не понял, что не так.

Есть идеи?

Примечание: В моем окружении разработки я добавил запись127.0.0.1 www.bimber-viral-buzz.local to access the WordPress site, and you see this domain in the console, because the WordPress forces using the defined domain name.

Связанный контент