我已经在这里待了很长时间,但是我似乎无法解决这个问题。我真的被困住了...所以我转向你们。
我正在尝试一些可能很简单的事情。我想将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”时会收到“错误的网关”错误。
答案 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服务器为前端服务的方法的确是可怕的设计。请随时告诉我...