让我们说简单,因为我是Varnish的初创公司,我有一个单服务器,里面有Varnish
和Apache
。 Apache中有多个子域作为虚拟主机。
让我们说:
然后我仅将Apache的httpd.conf
端口更改为:
Listen 8080
然后,现在我在VCL中的后端设置是:
backend default{
.host = "127.0.0.1";
.port = "8080";
}
现在我的问题是:
httpd.conf
端,是否只需要更改Listen
值?这个怎么样:
NameVirtualHost *:80
以及每个子域的V.Host设置:
<VirtualHost *:80>
..
..
</VirtualHost>
8080
,对于Apache端?最后在VCL配置中,我看到了这样的情况:
if (req.http.host == ".........com") {
..
}
..在其他论坛。
全部谢谢!
答案 0 :(得分:2)
Varnish将在port 80
上运行。因此,Apache应该在port 80
之外的任何其他端口上运行。我个人准备将port 81
用于Apache,因为port 8080
正常使用port 81
。
在Listen 81
NameVirtualHost *:81
上倾听Apache。
httpd.conf (/etc/httpd/conf/httpd.conf)。
backend default {
.host = "127.0.0.1";
.port = "81";
}
Varnish的默认配置文件。 default.vcl (/etc/varnish/default.vcl)。
# vhost : sub1.example.net
<VirtualHost *:81>
...
ServerName sub1.example.net
...
<Directory "/var/www/html/vhosts/example.net/sub1/public_html">
...
</Directory>
...
</VirtualHost>
# vhost : sub2.example.net
<VirtualHost *:81>
...
ServerName sub2.example.net
...
<Directory "/var/www/html/vhosts/example.net/sub2/public_html">
...
</Directory>
...
</VirtualHost>
sub1.example.net和sub2.example.net的虚拟主机。 vhosts.conf (/etc/httpd/conf.d/vhosts/example.net.conf)。
{{1}}