我有一个小的express应用程序在一个docker容器中运行。端点可以通过http://localhost:8888/api/run
本地访问。docker容器是使用以下命令运行的:
docker run -dp 8888:8888 code-editor
我配置了NGINX来使用location块服务来自docker的响应:
伺服器{
server_name www.baseURL.tech baseURL.tech;
-------------------CONNECT WITH APP INSIDE DOCKER--------------------
location /compiler {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8888/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
-------------------CONNECT WITH MAIN NODE APP--------------------
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
被调用的路径是https://baseURL/compiler/api/run
,作为来自主网站https://baseURL
的ajax请求,但是它返回404。
1条答案
按热度按时间ndh0cuux1#
你已经
这会导致Nginx将整个URL(即
compiler/api/run
)传递到Express应用程序。您希望它删除compiler
部分,最简单的方法是在该位置的末尾添加一个斜线,如下所示然后Nginx只会将
api/run
传递给Express。