所以我有一个域(company.com),它指向一个nginx反向代理。 Nginx根据路径将请求路由到不同的应用程序(在不同的内部IP上):
company.com/login company.com/dashboard company.com/api
仪表板和登录是前端反应应用程序,这些应用程序又可以从api查询。
我遇到的问题是通过nginx路由到正确的应用程序。每个端点的Nginx位置看起来像
location /login {
proxy_pass http://login.internal.app/;
proxy_redirect off;
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-Host $server_name;
}
但是,由于响应(使用create-react-app
)的服务工作者被设置为/serviceworker.js
。对于静态文件,我认为我可以通过在"homepage": "./",
中设置package.json
使其相对,然后在HTML中设置基本URL来实现这一目的。 <base href="/login">
。但是我不知道如何让服务工作者这样做,因此我需要将其路由到后端的正确React应用。
信息
帮助表示感谢:)
编辑:
经过进一步检查,我认为发生在/
上的应用程序(这是登录应用程序-它同时位于/
和/login
上)正在捕获所有路径,并且该应用程序的服务正在尝试通过其反应BrowserRouter
路由路径。我已经了解到,如果路由器/服务工作者没有端点,它将把它传递回服务器。如果没有,我该怎么做呢?