将简单的docker compose连接到nginx吗?

时间:2019-03-15 16:51:53

标签: docker nginx

我已经在这里待了很长时间,但是我似乎无法解决这个问题。我真的被困住了...所以我转向你们。

我正在尝试一些可能很简单的事情。我想将nginx用作前端的反向代理。

Docker-compose

version: '3.7'

services:
  frontend:
    expose:
      - 9080
    build: "./"...""
    volumes:
      - ./"..."/build:/usr/src/kitschoen-rj/
  nginx:
    build: ./nginx
    volumes:
      - static_volume:/usr/src/"..."/staticfiles
    ports:
      - 8080:8080
    depends_on:
      - restapi

volumes:
  static_volume:

nginx.conf

upstream kitschoen_frontend {
    server frontend:9080;
}

server {

    listen 8080;

    location / {
        proxy_pass http://kitschoen_frontend;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

}

我根本不知道为什么进入“ localhost:8080”时会收到“错误的网关”错误。

1 个答案:

答案 0 :(得分:0)

经过一些认真的故障排除后,我结束了折磨。这个问题完全是愚蠢的。我为我的React应用程序创建了一个多阶段构建,该构建也为React应用程序提供了Nginx服务器(这确实减小了React的图像大小)。

但是react Nginx服务器暴露了react应用程序的端口80,并相应地转发了所有请求。

S 解决方案是将我的nginx.conf更改为:

upstream kitschoen_frontend {
    server frontend:80;
}

server {

    listen 8080;

    location / {
        proxy_pass http://kitschoen_frontend;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

}

多么糟糕的一天! 如果您到目前为止已经阅读了这篇文章,并且您认为通过单独的nginx服务器为前端服务的方法的确是可怕的设计。请随时告诉我...