我有一个简单的应用程序,有两个独立的容器:一个到后端(api-container),另一个到前端(front-container)。
我想配置 ngnix 将所有从域 api.myurl.com 的请求重定向到后端容器,并将所有请求从 myurl.com 重定向到前端容器。
为此,我配置了 ngnix,如下所示:
server {
listen 80;
server_name myurl.com;
location / {
resolver 127.0.0.11;
proxy_pass http://front-container:80;
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-Proto $scheme;
}
}
server {
listen 80;
server_name api.myurl.com;
location / {
resolver 127.0.0.11;
proxy_pass http://api-container:3010;
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-Proto $scheme;
}
}
一切都几乎正常。当我访问 http://myurl.com 时,一切正常,但是当访问 http://myurl.com/other 等其他路由时,ngnix 返回 404 错误。这条路线在没有 ngnix 的情况下也能发挥作用。
我的配置有什么问题?
重要提示:ngninx 也在与其他容器位于同一网络的容器中运行。
我认为问题出在 nginx 配置上。请检查块位置并更改以下代码:
location / {
try_files $uri $uri/ /index.php?$query_string;
}