阿里雲 centos 配置多個域名
阿里雲 伺服器 httpd.conf 配置檔案中,配置多個域名是需要開啟
NameVirtualHost *:80
原因:
Apache 禁止未經許可的域名訪問 ECS 上的網站
ECS 例項上的網站被人惡意指向,例如,您的例項 IP 地址為 123.123.123.123,正常服務的域名為 www.abc.com , 惡意使用者使用其他的域名 www.fake.com , 指向 123.123.123.123,此時客戶端訪問 www.fake.com 時會出現您的網站內容。
通過 Apache 的虛擬主機可以變通的解決這個問題。以如下場景為例:
Apache 版本號 ECS 例項上的網站
2.2.15
加入程式碼 NameVirtualHost *:80
,告知 Apache 使用基於 host 名的虛擬主機功能:
加入以下程式碼。
<ViretualHost *:80> DocumentRoot /var/www/html/error/ ServerName * ErrorLog logs/dummy-host.example.com-error_log CustomeLog logs/dummy-host.example.com-access_log common </ViretualHost>
注意:當客戶端攜帶的 host 名不在之後設定的網站域名內時,會指向一個 403 錯誤頁面告知使用者域名非法,其中 DocumentRoot 是放置錯誤提示頁面的目錄,在下面可以放置一個簡單的 html 頁面提示使用者正在訪問非法域名。 加入以下程式碼。
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/another/
ServerName p1.huigher.cn
ErrorLog logs/p1.huigher.cn-error_loh
CustomLog logs/p1.huigher.cn-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/
ServerName t1.huigher.cn
ErrorLog logs/t1.huigher.cn-error_loh
CustomLog logs/t1.huigher.cn-access_log common
</VirtualHost>
注意:這一步告知 Apache 合法的網站主機頭,您需要根據實際情況修改這個程式碼塊內容,如示例中的 p1.huigher.cn 和 t1.huigher.cn。 執行命令 /etc/httpd/bin/apachectl restart 重啟 Apache 服務。
若您希望其他域名訪問您的網站時直接返回 403 錯誤:
修改第二步中的程式碼為以下形式:
<VirtualHost *:80>
DucumentRoot /var/www/html/error/
ServerName *
<Location>
Order Allow, Deny
Deny from all
</Location>
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log commom
</VirtualHost>
執行命令 /etc/httpd/bin/apachectl restart 重啟 Apache 服務。