删除尾部斜杠后,Nginx 的位置路径会重定向我

删除尾部斜杠后,Nginx 的位置路径会重定向我

这是我的反向代理配置。

server {
  listen 8080;
  access_log  /var/log/nginx/server.access.log  main;
  root /usr/share/nginx/htdocs;
  index  index.html index.htm;

  location /apps/ {
    proxy_pass  http://our-amazon-s3-bucket/apps/;
  }
}

当我访问http://amazon-elb-fqdn/apps/,我可以正常看到网页了。

但是,当我以这种方式访问​​它时(请注意缺少尾随斜杠),http://amazon-elb-fqdn/apps,它失败了,我的浏览器位置上的 url 更改为http://amazon-elb-fqdn:8080/apps

为什么会发生这种情况?如何解决?

更新时间:4 月 15 日,中部时区 3:15

当我像这样直接访问 s3 url 时,http://我们的亚马逊s3存储桶/应用程序,s3 bucket 将正确地将我重定向到http://我们的亚马逊s3存储桶/应用程序/

答案1

我认为你只需要注意位置映射。所以这里有解决办法

server {
  listen 8080;
  access_log  /var/log/nginx/server.access.log  main;
  root /usr/share/nginx/htdocs;
  index  index.html index.htm;

  location ~* ^/apps/ {
    rewrite ^/apps/(.*) /$1 break;       
    proxy_pass  http://our-amazon-s3-bucket/apps;
  }
}

相关内容