Ubuntu

為什麼 apache 提供預設服務?

  • January 31, 2011

我不斷添加更多虛擬主機並啟用它們,但所有站點總是對可用站點中的預設虛擬主機執行

這是我出於安全原因僅更改 ip 的預設類型

<VirtualHost 167.889.88.88:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

這是我的另一個,我命名為 some-site.net

<VirtualHost *:80>
    ServerName some-site.net
    DocumentRoot "/var/www/vhosts/somesite.com/http/"

    <Directory "/var/www/vhosts/somesite.com/http/">
            AllowOverride all
            Options -MultiViews
    </Directory>
</VirtualHost>

它打開了我的這個命令

sudo a2ensite some-site.net
Enabling site some-site.net.
Run '/etc/init.d/apache2 reload' to activate new configuration!

然後我重新載入

/etc/init.d/apache2 reload
* Reloading web server config apache2
...done.

但是當我訪問 url some-site.net 時,我得到了預設虛擬主機的索引頁面……我做錯了什麼

首先猜測,您需要在 httpd.conf 文件中使用NameVirtualHost語句。另外,作為一個健全的檢查,我假設你有正確的塊?

當你跑步時你會得到什麼apachectl -S

在您的第一個塊中,您沒有指定 ServerName 並且 Apache 將傳入請求與 IP 匹配。問題在於基於 IP 和名稱的虛擬伺服器配置的混合。

為了進一步排除問題,請在您的虛擬伺服器指令中使用 ServerName 指令,該指令如下所示。

虛擬主機 167.889.88.88:80

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