作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图用需要精确主机名的两个后端运行 Varnish 。但是我的nginx收到了本地主机主机头。
这是我的配置:
probe healthcheck {
.url = "/";
.interval = 5s;
.timeout = 15s;
.window = 5;
.threshold = 3;
}
# Define the list of backends (web servers).
# Port 443 Backend Servers for SSL
backend bimer1 {
.host = "nginx-proxy";
.host_header = "site1.example.com.br";
.port = "80";
.probe = healthcheck;
}
backend bimer2 {
.host = "nginx-proxy";
.host_header = "site2.example.com.br";
.port = "80";
.probe = healthcheck;
}
最佳答案
Varnish是透明的HTTP代理。它将客户端(您的浏览器)发送给它的所有Host
header 转发到后端。因此,如果您通过http://localhost/访问它,那么localhost
是您的后端将在Host
header 中看到的内容。
此外,您绝不应该在Varnish后端定义中使用DNS名称。它应该看起来像这样:
backend bimer1 {
.host = "1.2.3.4";
# ... etc.
关于 Varnish host_header不会发送到后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44677939/
我是一名优秀的程序员,十分优秀!