Centos

httpd vhosts 配置(使用 Varnish)- 1 個伺服器 /w 多個域

  • October 6, 2011

我一直在閱讀有關此主題的多個問題,但似乎無法使其正常工作…

我有一台執行 CentOS 的伺服器,HTTPD 在預設的 httpd 根目錄下執行 1 個網站:

Listen 8080
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>`

我也在執行 Varnish:Varnish 正在監聽 80 埠並將請求轉發到正在監聽 8080 埠的 httpd

現在我想在這台伺服器上執行第二個域,所以我在 /etc/httpd/conf/ 下添加了一個 .conf 文件,內容如下:

<VirtualHost *:8080>
ServerAdmin root@localhost
DocumentRoot /var/www/vhosts/domainx.be
ServerName domainx.be
ErrorLog logs/domainx-error_log
CustomLog logs/domainx-access_log common
</VirtualHost>

當我應用上述內容時,所有流量(包括根域的流量)都被路由到 domainx。當我將 vhost 的埠更改為 80 時,domainx 被轉發到根主機。

這是我第一次在沒有安裝 Plesk of Webmin 之類的東西的情況下這樣做,所以我不知道從哪裡開始……

  • 為您的網站創建一個指向文件根目錄的虛擬主機。記得添加NameVirtualHost *:8080.
  • 將後端配置放在一個文件中,然後根據請求的主機名包含它:
if (req.http.Host == "domainx.be") {
包括“/etc/varnish/domainx.be.vcl”;
}

為每個虛擬主機創建虛擬主機條目,甚至是“真實”站點,並且不要忘記包含 ServerName。那應該可以修復您的 Apache 設置。

就我個人而言,我也總是在 127.0.0.1 埠 80 上執行 apache,在公共 IP 埠 80 上執行 Varnish。這樣你就不會遇到 $_SERVER 變數認為 Varnish 在埠 8080 上執行的問題。

引用自:https://serverfault.com/questions/319120