Dou*_*ris 1 varnish apache-2.2
我正处于将Varnish 3.0.4 作为 Web 服务的新前端进行测试的早期阶段。我已将 varnish 配置为侦听端口 88。对于其后端,它使用在端口 80 上的同一主机上运行的现有 apache 服务器。
我遇到的问题是,当 varnish 向 apache 发出请求时,它在Host
http 标头中包含“:88” (即使它肯定是在端口 80 上连接到 apache。
例如:
http://www.myservice.com:88/images/foo.gif
。它向后端发出请求。HOST
标头记录到 Apache 访问日志中 -%{Host}
以日志文件格式使用www.myservice.com:88
,而不是www.myservice.com
。如果我使用 telnet 连接到这个 apache 服务器并发出相同的 HEAD 请求但改变Host
标头的值,我会看到我通过清漆看到的相同行为 - 即如果我在主机标头中包含 :88,请求返回 404。
我试过了:
req.http.header.port
和beresp.http.header.port
对80
req.http.header.host
和beresp.http.header.host
到www.myservice.com
。好像我错过了一些明显的东西。
如何让清漆向 apache 发送正确的主机标头?
Host
默认情况下,Varnish 使标头完全不受干扰 - 它会将发送给它的内容发送给 Apache。这是预期的行为 - 除非你告诉它,否则 Varnish 不会摆弄任何东西。
要操作它,vcl_recv
除了需要添加的任何条件逻辑之外,还可以在您的.
set req.http.Host = "www.myservice.com";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3248 次 |
最近记录: |