nginx proxy_pass 302 将非root用户重定向到root用户

nginx proxy_pass 302 将非root用户重定向到root用户

我怎样才能让 nginx 在代理 root 的同时将所有 URL(当然除了 root)重定向到 root?

我们有一个 angular nodejs 应用程序,我们正尝试从生成的 dist 文件夹中获取构建的输出,并运行 nodejs 的 serve ( npx serve "dist/app") 以在部署环境中运行它。我们遇到的问题是我们在应用程序中使用了 angular 路由,因此http://app/nested/url应该只从 HTTP 返回根 URL 内容,然后让浏览器整理路径和查询。我正在尝试使用 nginx 配置来实现这一点。

到目前为止,它还没有起作用;在尝试了几个小时不同的解决方案之后,我从其他 SO / SF 答案中尝试过的所有方法要么只是通过路径连接的代理(我们得到 404),要么根本身失败

以下是我希望实现的功能:

server {
    listen 880;
    listen [::]:880;

  location ^~ /([^/]+) {
    return 302 /;
  }

  location ^~ / {
    proxy_pass http://myserver:8081/;
  }

.. 但调用http://我的服务器:880/login仍然只是返回 404,而http://服务器:880/通过代理可以正常工作,就好像第一个位置块不存在一样。我还尝试过交换声明的顺序,不确定这是否重要,但它就是会破坏它

测试/原型设计适用于 Windows 的 nginx,将部署于AWS Beanstalk(带有代理配置的nodejs)。

抱歉,我愚蠢地误判了一些测试,我以为它“只是失败了”,但实际上它正在运行,只是所有依赖项(.js 文件、图像、css 文件等)没有加载,因为它们被 catch-all 捕获了。真是的。

答案1

尝试这个:

location = / {
  proxy_pass http://myserver:8081/;
}

location / {
  return 302 /;
}

相关内容