大家好。我对 Nginx 还很陌生。我的情况是这样的。我有一个 Php 应用程序,它处理后端和前端,还有另一个 ReactJs 应用程序作为微前端服务。我正在使用 Docker 容器来运行 Nginx 服务。
目前,域名是这样的;Php 应用程序 - https://my.happy.customers.local
ReactJs -http://my.happy.customers.profile.local
我在这里想要实现的是,每当客户访问https://my.happy.customers.local/user/1234567989/profile
url 时,我都希望将用户发送到http:///my.happy.customers.profile.local:3001/user/1234567989/profile
url。
所有的 cookie 和本地存储值都绑定到https://my.happy.customers.local
域,所以我也想从第二个域使用它们。
我怎样才能做到这一点??
我设法重定向 url,但是这样一来,我丢失了所有 cookie。
location ~ ^/(user)(/.*)(/profile)(/.*) {
rewrite ^/(user)(/.*)(/profile)(/.*)$ http:///my.happy.customers.profile.local:3001$request_uri redirect
}
如果我可以在不更改 URL 的情况下将用户重定向到微前端,那就太好了。这可能吗?
我尝试过这种方法,但它给出了一个错误。
location ~ ^/(user)(/.*)(/profile)(/.*) {
resolver my.happy.customers.profile.local;
proxy_pass http://my.happy.customers.profile.local:3001$request_uri
}
答案1
您的第二个示例是正确的方法。但是,您的示例中存在一些问题:
你已经输入了localtion
,应该是location
。
对于该resolver
指令,您需要指定希望 nginx 用于解析域名的名称服务器的域名或 IP 地址。我怀疑您是否安装了递归 DNS 解析器到my.happy.customers.profile.local
服务器。