0

簡単にするために、私はVarnishのスタートアップであるため、内部にと一緒にある単一のサーバーがあります。Apache には仮想ホストとして複数のサブドメインがあります。VarnishApache

私が持っているとしましょう:

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

次に、Apacheのポートのみを次のように変更しました。httpd.conf

Listen 8080

繰り返しになりますが、これまでの VCL でのバックエンド設定は次のとおりです。

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

ここでの私の質問は次のとおりです。

  • このような設定で十分ですか?真剣に私はここで何が欠けていますか?
  • 私がまだクリアする必要があるのは、まず、Apache側で、値httpd.confを変更するだけでよいのでしょうか?Listen

これはどう:

NameVirtualHost *:80

また、各サブドメインの V.Host 設定:

<VirtualHost *:80>
..
..
</VirtualHost>
  • Apache側のために、それらのポートも変更する必要がありますか?8080

最後に、VCL 構成で、次のようなものが表示されます。

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

.. 他のフォーラムで。

  • VCL 内にこの種の設定はありません
  • だから私はそのようなものが必要ですか、そして/または真剣に私のスキーマに欠けているものは何ですか?

皆さんありがとう!

4

1 に答える 1

2

Varnish は で実行されますport 80。そのため、Apache は他のポートで実行されている必要がありますport 80Apache Tomcatで通常使用されるように、私は個人的port 81に Apacheを使用する準備をしています。port 8080

で Apache をリッスンしていport 81ます。 httpd.conf (/etc/httpd/conf/httpd.conf)。

Listen 81
NameVirtualHost *:81

Varnish のデフォルト設定ファイル。 default.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 に答える