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