0

为简单起见,因为我是 Varnish 的初创公司,所以我有一个服务器Varnish里面有一个服务器Apache。Apache 中有多个子域作为虚拟主机。

可以说我有:

  • sub1.example.com
  • sub2.example.com
  • sub3.example.com

然后我将 Apache 的httpd.conf端口更改为:

Listen 8080

再说一次,到目前为止我在 VCL 中的后端设置是:

backend default{
  .host = "127.0.0.1";
  .port = "8080";
}

现在我的问题是:

  • 这种设置是否足够?说真的,我在这里错过了什么?
  • 我仍然需要清除的是,首先,在 Apachehttpd.conf端,是否只需要更改Listen值?

这个怎么样:

NameVirtualHost *:80

以及每个子域的 V.Host 设置:

<VirtualHost *:80>
..
..
</VirtualHost>
  • 我是否还需要更改这些端口以8080取悦 Apache 方面?

最后在 VCL 配置中,我看到了以下内容:

if (req.http.host == ".........com") {
    ..
}

..在其他论坛。

  • 我的 VCL 中没有这种设置
  • 那么我需要这样的东西和/或认真地为我的架构缺少什么吗?

谢谢大家!

4

1 回答 1

2

Varnish 将在port 80. 因此,Apache 应该在任何其他端口上运行port 80。我个人准备像Apache Tomcatport 81一样port 8080正常使用Apache 。

听 Apache 上port 81httpd.conf (/etc/httpd/conf/httpd.conf)。

Listen 81
NameVirtualHost *:81

Varnish 的默认配置文件。 默认.vcl (/etc/varnish/default.vcl)。

backend default {
  .host = "127.0.0.1";
  .port = "81";
}

sub1.example.net 和 sub2.example.net 的虚拟主机。 vhosts.conf (/etc/httpd/conf.d/vhosts/example.net.conf)。

# 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>
于 2013-03-13T07:24:40.320 回答