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。
網站目錄結構:
Apache 核心配置內容:
主要是開啟 Apache 的虛擬主機功能,配置對應的虛擬主機到對應的目錄即可。
實現效果:
使用 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 頁面提示使用者訪問的域名非法。
3、 最後加入以下程式碼,告知 Apache 合法的網站主機頭,這個程式碼塊根據實際情況修改內容,該主機中加入了兩個網站,分別是 p1.huigher.cn 和 t1.huigher.cn。
4、 最後重新啟動 Apache 就可以看到效果了。
5、若希望使用其他域名訪問時直接返回 403 錯誤,可以在第二步中將程式碼改為以下形式:
重啟 Apache 後再使用其他域名訪問就會直接返回 403 錯誤了。