Docker:nginx 以代理程式傳回 502 Bad Gateway

Docker:nginx 以代理程式傳回 502 Bad Gateway

首先我想說我對 Docker 和伺服器管理完全陌生。

我嘗試建構的是一個基於 docker 的堆疊,包括WordPressMariaDBnGinx映像。

它將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

那麼Dockerfilefor theNginx就是這樣的:

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 位址直接存取圖像,我會得到以下輸出:

存取WordPress容器IP

你能看看我做錯了什麼嗎?從早上開始我就讀了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.

相關內容