Nginx 反向代理将前端应用程序匹配的 URL 从 HTTPS 传递到 HTTP

Nginx 反向代理将前端应用程序匹配的 URL 从 HTTPS 传递到 HTTP

大家好。我对 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/profileurl 时,我都希望将用户发送到http:///my.happy.customers.profile.local:3001/user/1234567989/profileurl。

所有的 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服务器。

相关内容