我目前有两个 WORDPRESS 网站位于 NGINX 代理缓存后面:
htxtp://local.example.com htxtp://local.example.org
我想从第一个站点访问 URL,但从第二个站点提供服务,同时不丢失第一个站点的 URL 结构(以允许 example.org 查看 example.com 的 cookie)。
例如:
我想:
htxtp://local.example.com/somepage/
代理建立于以下位置的页面:
htxtp://local.example.org/somepage/
但我不希望 URL 是 htxtp://local.example.org。
我的NGINX配置如下:
server {
listen 80;
server_name local.example.com;
access_log logs/local.example.com.access.log;
error_log logs/local.example.com.error.log;
location /somepage {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host local.example.org;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host local.example.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
有什么建议吗?我正在尝试找出实际重定向发生的位置。
答案1
允许 website2.com 查看 website1.com 的 cookie
由于浏览器安全问题,您不能这样做。
简介很有趣:http://www.innovativephp.com/sharing-cookies-across-multiple-domains-hosted-on-different-servers/
假设您有一个名为 www.example.com 的网站和 www.example.com 托管在同一台服务器上。尽管两个网站都在同一台服务器上,但域名不同,因此您会发现 Cookie 在另一个顶级域中不起作用。所以我们不能在这两个网站之间使用 Cookie。但是,如果您有一个名为 www.example.com 的网站和名为 www.app.example.com、www.demo.example.com 的子域,您可以为所有 3 个域设置 Cookie 值并在每个域之间进行通信。
答案2
尝试使用 proxy_pass 将位置 htxtp://local.example.com/somepage/ 传递给 .org 版本:
server { #local.example.com server block
server_name local.example.com;
location /somepage {
proxy_pass http://local.example.org;
}
}