今天,朋友有個網站要掛在我的服務器上,鼓搗了一下Nginx中配置多個主機和域名,具體的要求是:
- 主機只有一個IP地址 123.123.123.123
- 有兩個功能不同的網站,一個是我現在的blog,一個是朋友的購物網站
- 有兩個域名 www.wusay.org www.AusForYou.com,一個是我的blog,一個是朋友的域名
- 需要用戶通過不同的域名訪問不同的網站內容
安裝兩個站點的源代碼
在/srv/www/
下建立了兩個目錄,分別用來存放我的blog和朋友的購物網站,目錄分別是wusay
和AusForYou
,具體的代碼安裝和數據庫安裝就不說了
修改NGINX配置
我用的Nginx是1.1.19版本,配置信息都在/etc/nginx/
下,主配置文件是nginx.conf,不過這個文件安裝好了以後不用怎麼修改了,注意看看裏面的include
/etc/nginx/sites-enabled/*;
是否被註釋掉了,如果被註釋掉請刪掉註釋,其中sites-enabled文件夾中就是存各個站點的具體配置信息
修改SITES-ENABLED文件夾內的配置
在sites-enabled
文件夾中新建兩個文件,分別爲wusay
和AusForYou
內容如下:
server {
listen 80;
server_name www.wusay.org wusay.org ;
access_log /srv/www/wusay/logs/access.log;
error_log /srv/www/wusay/logs/error.log;
root /srv/www/wusay/public_html;
location / {
# root /srv/www/wusay/public_html;
index index.html index.htm index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/wusay/public_html$fastcgi_script_name;
}
}
AusForYou的文件內容也和這個類似,不過server_name那裏要用www.ausforyou.com這個域名,另外,所有的路徑中的wusay
都要改成AusForYou
,這樣,就爲這臺主機添加了兩個虛擬主機,Nginx會根據域名來決定是將用戶指引到哪一臺虛擬主機上進行操作。
刪除SITES-AVAILABLE中的文件
之前我都配好了,但是一直就弄不了兩個虛擬主機,後來發現sites-available這個目錄下有個default
文件,裏面有一些默認配置可能影響了使用,刪掉就行了
重啓NGINX進程
最後,運行/etc/init.d/nginx restart
重啓Nginx進程,加載新配置,完成任務