首页 > 解决方案 > 多个带有清漆的子域

问题描述

现在我有了这个设置

80端口用nginx重定向到443端口,然后它使用varnish作为上游,现在当它回来时,我需要在nginx中设置一些变量,fx

en.mydomain.com我的域带有子域,例如de.mydomain.com

server {
  server_name 127.0.0.1;
  listen 8080;
  $VAR = en;
}

server {
  server_name 127.0.0.1;
  listen 8080;
  $VAR = de;
}

我如何确定使用哪个域来实现这一点 - 我认为我需要有多个端口,然后 varnish 应该根据域重定向到每个后端,如何设置 varnish 以根据域返回到后端?

标签: nginxvarnish

解决方案


如果每个子域的 Varnish 后端的 IP 地址和端口都相同,则不必担心:Host每个请求的标头会导致 Varnish 中的缓存键不同,但 Nginx 也会根据这个Host标题。

在您共享的配置中,您应该确保en.mydomain.com并且de.mydomain.com是 Nginx 的一部分server_name。这将允许 Nginx 匹配正确的主机名。

如果您转到en.mydomain.com,Varnish 将提取主机和 URL,并将其转换为唯一的缓存键。如果它需要从 Nginx 获取数据,Nginx 会为你处理。


推荐阅读