gpt4 book ai didi

Nginx 在 proxy_pass 中接受尾部斜杠或没有尾部斜杠

转载 作者:行者123 更新时间:2023-12-04 10:11:04 31 4
gpt4 key购买 nike

我遇到了以下问题,我希望能够从带有尾部斜杠的主网站访问代理传递的位置(托管 docker 容器中的 React/NextJs webApp) 没有尾部斜杠。

目前,当我点击:

http://my-website.com/test # 这行得通

但是当我点击:

http://my-website.com/test/ # 失败并返回 404

我希望能够访问这两个网址。我错过了什么?

   ### Default Server ###
server {
listen 80;
root /usr/site;
if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri;
}
location ~/test(.*)$ {
set $upstream_endpoint http://$docker_container_url;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_pass $upstream_endpoint$1/;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

最佳答案

经过长时间的实验,我们得出了这个解决方案:

  location ~ ^/test(?:/(.*))?$ {
# some directives here
proxy_pass http://nginx_docker_container_url/$1;
# some directives here
}

需要将 /test 之后的所有内容传递给应用程序,无论是否带有尾部斜杠,都应该正确处理

关于Nginx 在 proxy_pass 中接受尾部斜杠或没有尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61334358/

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