NuxtJS 和 NGINX Proxy Companion 出现 502 Bad Gateway 错误

NuxtJS 和 NGINX Proxy Companion 出现 502 Bad Gateway 错误

我正在尝试使用 NGINX 代理伴侣设置代理,但遇到了 502 Bad Gateway 错误...

这是我的docker-compose.yml:

  nuxtjs:
    build:
      context: .
      dockerfile: docker/nuxtjs/Dockerfile
    environment:
      API_BASE_URL: fff.com
      VIRTUAL_HOST: fff.com
      LETSENCRYPT_HOST: fff.com
    ports:
      - "8000:80"
    container_name: ${NUXTJS_CONTAINER_NAME}
    volumes:
      - ./front:/usr/src/app/
      - /usr/src/app/node_modules

Dockerfile:

FROM node:lts

# create destination directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# copy the app, note .dockerignore
COPY ./front /usr/src/app
RUN yarn

# build necessary, even if no static files are needed,
# since it builds the server as well
RUN yarn build

# expose 80 on container
EXPOSE 80

# set app serving to permissive / assigned
ENV NUXT_HOST=0.0.0.0
# set app port
ENV NUXT_PORT=80

# start the app
CMD [ "yarn", "dev" ]

代理在日志中显示此内容:

*40 no live upstreams while connecting to upstream, client: myip, server: fff.com, request: "GET /favicon.ico HTTP/2.0", upstream: "http://fff.com-upstream/favicon.ico", host: "xxx.com", referrer: "https://fff.com/"

并且生成了conf:

upstream fff.com {
        # Cannot connect to network 'webproxy' of this container
        # Fallback entry
        server 127.0.0.1 down;
}
server {
        server_name fff.com;
        listen 80 ;
        access_log /var/log/nginx/access.log vhost;
        # Do not HTTPS redirect Let'sEncrypt ACME challenge
        location ^~ /.well-known/acme-challenge/ {
                auth_basic off;
                auth_request off;
                allow all;
                root /usr/share/nginx/html;
                try_files $uri =404;
                break;
        }
        location / {
                return 301 https://$host$request_uri;
        }
}
server {
        server_name fff.com;
        listen 443 ssl http2 ;
        access_log /var/log/nginx/access.log vhost;
        ssl_session_timeout 5m;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_certificate /etc/nginx/certs/fff.com.crt;
        ssl_certificate_key /etc/nginx/certs/fff.com.key;
        ssl_dhparam /etc/nginx/certs/fff.com.dhparam.pem;
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/nginx/certs/fff.com.chain.pem;
        add_header Strict-Transport-Security "max-age=31536000" always;
        include /etc/nginx/vhost.d/default;
        location / {
                proxy_pass http://fff.com;
        }
}

有人有想法吗?

谢谢

答案1

你的ports定义是错误的。你正在将容器中的端口 80 映射到主机上的端口 8000,但你的容器暴露了端口 8000。

ports:
  - "80:8000"

或者,如果您想保留端口 8000:

ports:
  - "8000"

答案2

已解决:我忘记将代理附加到 webproxy 网络....

相关内容