Dou*_*ris 1 varnish apache-2.2
我正处于将Varnish 3.0.4 作为 Web 服务的新前端进行测试的早期阶段。我已将 varnish 配置为侦听端口 88。对于其后端,它使用在端口 80 上的同一主机上运行的现有 apache 服务器。
我遇到的问题是,当 varnish 向 apache 发出请求时,它在Hosthttp 标头中包含“: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对80req.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 次 |
| 最近记录: |