Linux 服務(wù)器如何配置網(wǎng)站以及綁定域名
以下列舉一些 主機上常見的 Web 程序的域名綁定和站點配置:
Nginx 服務(wù)綁定域名的方法
Tomcat 服務(wù)綁定域名的方法
Apache 服務(wù)綁定域名的方法
Apache 服務(wù)配置實現(xiàn)多域名跳轉(zhuǎn)
Apache 服務(wù)配置二級域名
Apache 禁止未經(jīng)許可的域名訪問主機上的網(wǎng)站
Nginx 服務(wù)綁定域名的方法
以 YUM 安裝的 Nginx 為例,域名綁定需要編輯 Nginx 的配置文件完成,Nginx 配置文件是 /etc/nginx/nginx.conf,將默認的server {...}配置修改成如下:
修改后的意思是:
1、訪問 www.123.com,會跳轉(zhuǎn)到 /home/web1 目錄;
2、訪問 www.abc.com,會跳轉(zhuǎn)到 /home/web2 目錄。
修改之后重啟 Nginx 服務(wù)即可。
Tomcat 服務(wù)綁定域名的方法
域名綁定需要編輯 Tomcat 的配置文件完成,Tomcat 配置文件是 $TOMCAT_HOME/conf/server.xml,$TOMCAT_HOME 是 Tomcat 的安裝目錄。
將上述內(nèi)容修改為:
修改后的意思是:
1、訪問 www.abc.com,會默認跳轉(zhuǎn)到 /data/wwwroot/default 目錄;
2、訪問服務(wù)器的 IP 地址 120.76.210.250,會默認跳轉(zhuǎn)到 /data/wwwroot/web 目錄;
修改之后重啟 Tomcat 服務(wù)器,即可生效。
Apache 服務(wù)綁定域名的方法
例如使用一鍵安裝包配置的 Apache 環(huán)境,添加網(wǎng)站配置方法如下:
1、進入站點配置文件目錄,命令如下:
cd /alidata/server/httpd/conf/vhosts/
2、創(chuàng)建一個新的配置文件,命令如下:
vi aa.conf
3、按鍵盤上的字母 “i”,開始編輯文件,將下面的內(nèi)容復(fù)制過去。
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”
注意:對應(yīng)的日志名字也需要自己修改一下,可以區(qū)分網(wǎng)站的日志信息。
4、重啟 Apache 測試,命令如下:
/alidata/server/httpd/bin/apachectl restart
Apache 服務(wù)配置實現(xiàn)多域名跳轉(zhuǎn)
例如程序的目錄為 /var/www/html。
網(wǎng)站目錄結(jié)構(gòu):
Apache 核心配置內(nèi)容:
主要是開啟 Apache 的虛擬主機功能,配置對應(yīng)的虛擬主機到對應(yīng)的目錄即可。
實現(xiàn)效果:
使用 a.example.com 訪問時,是訪問到 /var/www/html/a 目錄;
使用 b.example.com 訪問時,是訪問到 /var/www/html/b 目錄;
使用 c.example.com 訪問時,是訪問到 /var/www/html/c 目錄。
Apache 服務(wù)配置二級域名
1、擁有一個有泛域名解析的頂級域名,例如: aliyun.com;
2、在 httpd.conf 中打開 mod_rewrite 模塊;
3、在 httpd.conf 的最后,添加以下內(nèi)容:
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 服務(wù)器配置文件所在路徑,根據(jù)實際情況更改。
4、在這個所在路徑的目錄下創(chuàng)建一個文件: 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、在您的網(wǎng)站根目錄 /usr/local/www/data-dist 下,創(chuàng)建對應(yīng)目錄: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 禁止未經(jīng)許可的域名訪問 主機上的網(wǎng)站
問題現(xiàn)象
有時 主機 上的網(wǎng)站會被人惡意指向,譬如說您的 主機 的 IP 地址為 123.123.123.123,正常服務(wù)的域名為 www.abc.com,但是此時有惡意用戶使用其他的域名,惡意指向到您的網(wǎng)站;
如惡意用戶注冊了一個域名 www.fake.com,然后指向到了 IP 123.123.123.123,這樣會使訪問原本不屬于您網(wǎng)站的域名www.fake.com 也會出現(xiàn)您的網(wǎng)站內(nèi)容。
解決方案
通過 Apache 的虛擬主機可以變通的解決這個問題。
測試場景:
服務(wù)器上有兩個網(wǎng)站,分別為 https://t1.huigher.cn/ 和 https://p1.huigher.cn/。
Apache 版本為 2.2.15。
打開 Apache 的配置文件,CentOS 下默認位置在 /etc/httpd/conf/httpd.conf,在其中加入以下內(nèi)容:
注意:以實際 Apache 配置文件路徑為準(zhǔn)。
1、 首先是加入以下代碼,告知 Apache 使用了基于 host 名的虛擬主機功能:
NameVirtualHost *:80
2、 然后加入以下代碼,作用是當(dāng)客戶端攜帶的 host 頭不在之后設(shè)置的網(wǎng)站域名內(nèi)時,指向一個 403 錯誤頁面告知用戶域名非法,
其中 DocumentRoot 即是放置錯誤提示頁面的目錄,在下面可以放置一個簡單的 html 頁面提示用戶訪問的域名非法。
3、 最后加入以下代碼,告知 Apache 合法的網(wǎng)站主機頭,這個代碼塊根據(jù)實際情況修改內(nèi)容,該主機中加入了兩個網(wǎng)站,分別是 p1.huigher.cn 和 t1.huigher.cn。
4、 最后重新啟動 Apache 就可以看到效果了。
5、若希望使用其他域名訪問時直接返回 403 錯誤,可以在第二步中將代碼改為以下形式:
重啟 Apache 后再使用其他域名訪問就會直接返回 403 錯誤了。