我有一个简单的nginx反向代理:
server {
server_name external.domain.com;
location / {
proxy_pass http://backend.int/;
}
}
问题在于Set-Cookie
响应头包含;Domain=backend.int
,因为后端不知道它是否被反向代理。
如何使nginx重写Set-Cookie
响应标头的内容,替换;Domain=backend.int
为;Domain=external.domain.com
?
路过Host
头不变的是不会在这种情况下的一个选项。
Apache httpd拥有此功能已有一段时间了,请参阅参考资料ProxyPassReverseCookieDomain
,但是我似乎找不到在nginx中实现此功能的方法。
2
为什么不能传递主机头?imo头的主机部分就是用于此类操作的。如果需要传递使用哪个代理,则应提供其他标头。
—
jojoo 2011年
假设您有一个做虚拟主机的旧服务器,并且想将Nginx放在它的前面,以便在新域中发布其中的一些服务。假设您也不能(或不想)更改旧服务器的配置。Nginx包含在Cookie站点问题之外在新站点上发布旧服务所需的所有工具。
—
Tobia 2012年