1. 程式人生 > >Linux 伺服器配置網站以及繫結域名

Linux 伺服器配置網站以及繫結域名

  Apache 服務繫結域名的方法

 

  例如使用一鍵安裝包配置的 Apache 環境,新增網站配置方法如下:

 

  1、進入站點配置檔案目錄,命令如下:

  cd /alidata/server/httpd/conf/vhosts/

 

  2、建立一個新的配置檔案,命令如下:

  vi aa.conf

 

  3、按鍵盤上的字母 “i”,開始編輯檔案,將下面的內容複製過去。

  Order allow,denyDeny from allDocumentRoot /alidata/www/testServerName www.test.comServerAlias test.comErrorLog “/alidata/log/httpd/test-error.log”CustomLog “/alidata/log/httpd/test.log”

 

  注意:對應的日誌名字也需要自己修改一下,可以區分網站的日誌資訊。

 

  4、重啟 Apache 測試,命令如下:

  /alidata/server/httpd/bin/apachectl restart

 

  Apache 服務配置實現多域名跳轉

 

  例如程式的目錄為 /var/www/html。

  網站目錄結構:

5.jpg

 

  Apache 核心配置內容:

 

  主要是開啟 Apache 的虛擬主機功能,配置對應的虛擬主機到對應的目錄即可。

6.jpg

7.jpg

 

  實現效果:

 

  使用 a.example.com 訪問時,是訪問到 /var/www/html/a 目錄;

  使用 b.example.com 訪問時,是訪問到 /var/www/html/b 目錄;

  使用 c.example.com 訪問時,是訪問到 /var/www/html/c 目錄。

 

  Apache 服務配置二級域名

 

  1、擁有一個有泛域名解析的頂級域名,例如: aliyun.com;

  2、在 httpd.conf 中開啟 mod_rewrite 模組;

  3、在 httpd.conf 的最後,新增以下內容:

 

  RewriteEngine onRewriteMap lowercase int:tolowerRewriteMap vhost txt:/usr/local/etc/apache/vhost.mapRewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$RewriteCond ${vhost:%1} ^(/.)$RewriteRule ^/(.)$ %1/$1

 

  注意:其中的 /usr/local/etc/apache 是您的 Apache 伺服器配置檔案所在路徑,根據實際情況更改。

 

  4、在這個所在路徑的目錄下建立一個檔案: vhost.map。

  www.aliyun.com /usr/local/www/data-dist/aliyunbbs.aliyun.com /usr/local/www/data-dist/aliyunbbsanyname.aliyun.com /usr/local/www/data-dist/anyname

 

  注意:以上部分都是:” 域名+空格+絕對路徑”的形式。

 

  5、在您的網站根目錄 /usr/local/www/data-dist 下,建立對應目錄:aliyun , bbs , anyname 等等,理論上可以無限。

 

  這樣,通過瀏覽器,訪問 www.aliyun.com 時,實際上訪問的就是 /usr/local/www/data-dist/aliyun 目錄下的檔案。

 

  同理,訪問 bbs.aliyun.com 實際上訪問的就是 /usr/local/www/data-dist/aliyunbbs 目錄下的檔案。

 

  而且,您可以隨時更改 vhost.map 來增加、刪除、修改您的二級域名和所指向的實際路徑,不用重啟 Apache。

 

  Apache 禁止未經許可的域名訪問 主機上的網站

 

  問題現象

 

  有時 主機 上的網站會被人惡意指向,譬如說您的 主機 的 IP 地址為 123.123.123.123,正常服務的域名為 www.abc.com,但是此時有惡意使用者使用其他的域名,惡意指向到您的網站;

 

  如惡意使用者註冊了一個域名 www.fake.com,然後指向到了 IP 123.123.123.123,這樣會使訪問原本不屬於您網站的域名www.fake.com 也會出現您的網站內容。

 

  解決方案

 

  通過 Apache 的虛擬主機可以變通的解決這個問題。

 

  測試場景:

  伺服器上有兩個網站,分別為 http://t1.huigher.cn/ 和 http://p1.huigher.cn/。

  Apache 版本為 2.2.15。

  開啟 Apache 的配置檔案,CentOS 下預設位置在 /etc/httpd/conf/httpd.conf,在其中加入以下內容:

 

  注意:以實際 Apache 配置檔案路徑為準。

 

  1、 首先是加入以下程式碼,告知 Apache 使用了基於 host 名的虛擬主機功能:

  NameVirtualHost *:80

 

  2、 然後加入以下程式碼,作用是當客戶端攜帶的 host 頭不在之後設定的網站域名內時,指向一個 403 錯誤頁面告知使用者域名非法,

  其中 DocumentRoot 即是放置錯誤提示頁面的目錄,在下面可以放置一個簡單的 html 頁面提示使用者訪問的域名非法。

8.jpg

 

  3、 最後加入以下程式碼,告知 Apache 合法的網站主機頭,這個程式碼塊根據實際情況修改內容,該主機中加入了兩個網站,分別是 p1.huigher.cn 和 t1.huigher.cn。

9.jpg

 

  4、 最後重新啟動 Apache 就可以看到效果了。

 

  5、若希望使用其他域名訪問時直接返回 403 錯誤,可以在第二步中將程式碼改為以下形式:

10.jpg

 

  重啟 Apache 後再使用其他域名訪問就會直接返回 403 錯誤了。