gpt4 book ai didi

python - 从 nginx 中删除不需要的前导斜杠

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:23 24 4
gpt4 key购买 nike

我的 nginx 服务器有以下配置(在服务器标签内):

location / {

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;

# Fix the “It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:5000;
proxy_read_timeout 90;


}
location /api {
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;

# Fix the “It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:2233/;
proxy_read_timeout 90;
proxy_redirect default;
}

我现在尝试通过我的网络浏览器访问/api/auth/login/。在端口 2233,我有一个运行 Flask 的 python 服务器。现在在 python 控制台中我得到:

"GET //auth/login/ HTTP/1.0" 404 -

在我看来,这条路径很乱,也没有在 flask 中配置,这就是为什么会有 404 响应(对于/auth/login 我有一条路线)。

我如何摆脱 nginx 产生的前导斜线?

最佳答案

您正在使用 proxy_pass 指令将 /api/foo 别名为 /foo。如果源 URI 和目标 URI 都以 / 结尾或都不以 / 结尾,则别名往往效果最佳。

所以:

location /api/ {
proxy_pass http://localhost:2233/;
...
}

将正确地将 /api/foo 映射到 /foo 而无需在开头添加双 /。参见 this document了解详情。

这也可能意味着裸 URI /api 现在可能无法正常工作。

或者,使用 rewrite ... break; 而不是 proxy_pass 执行别名:

location /api {
rewrite ^/api(?:/(.*))?$ /$1 break;
proxy_pass http://localhost:2233;
...
}

参见 this document了解详情。

关于python - 从 nginx 中删除不需要的前导斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41766618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com