1. 程式人生 > >阿里雲 centos 配置多個域名

阿里雲 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

http://t1.huigher.cn/http://p1.huigher.cn/ 開啟 Apache 的實際配置檔案,如執行命令 vi /etc/httpd/conf/httpd.conf 開啟 CentOS 的 Apache 配置檔案,加入以下內容:

加入程式碼 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 服務。