nginx綁定多個域名,可把多個域名規(guī)則寫一個配置文件里,也可分別建立多個域名配置文件,一般為了管理方便,建議每個域名建一個文件,有些同類域名也可寫在一個總的配置文件里。
一、每個域名一個文件的寫法
首先打開nginx域名配置文件存放目錄:/usr/local/nginx/conf/servers ,如要綁定域名www.itblood.com 則在此目錄建一個文件:www.itblood.com.conf然后在此文件中寫規(guī)則,如:
server{
listen 80;
server_name www.itblood.com; #綁定域名
index index.htm index.html index.php; #默認(rèn)文件
root /home/www/itblood.com; #網(wǎng)站根目錄
include location.conf; #調(diào)用其他規(guī)則,也可去除
}
然后重起nginx服務(wù)器,域名就綁定成功了nginx服務(wù)器重起命令:/etc/init.d/nginx restart
二、一個文件多個域名的寫法
一個文件添加多個域名的規(guī)則也是一樣,只要把上面單個域名重復(fù)寫下來就ok了,如:
server{
listen 80;
server_name www.itblood.com; #綁定域名
index index.htm index.html index.php; #默認(rèn)文件
root /home/www/itblood.com; #網(wǎng)站根目錄
include location.conf; #調(diào)用其他規(guī)則,也可去除
}
server{
listen 80;
server_name msn.itblood.com; #綁定域名
index index.htm index.html index.php; #默認(rèn)文件
root /home/www/msn.itblood.com; #網(wǎng)站根目錄
include location.conf; #調(diào)用其他規(guī)則,也可去除
}
三、不帶www的域名加301跳轉(zhuǎn)
如果不帶www的域名要加301跳轉(zhuǎn),那也是和綁定域名一樣,先綁定不帶www的域名,只是不用寫網(wǎng)站目錄,而是進(jìn)行301跳轉(zhuǎn),如:
server
{
listen 80;
server_name itblood.com;
rewrite ^/(.*) http://www.itblood.com/$1 permanent;
}
四、添加404網(wǎng)頁
添加404網(wǎng)頁,都可又直接在里面添加,如:
server{
listen 80;
server_name www.itblood.com; #綁定域名
index index.htm index.html index.php; #默認(rèn)文件
root /home/www/itblood.com; #網(wǎng)站根目錄
include location.conf; #調(diào)用其他規(guī)則,也可去除
error_page 404 /404.html;
}
四種規(guī)則方法,就可以自己獨(dú)立解決nginx 多域名配置問題了。
配置多域名
方法一:多個的.conf方法(優(yōu)點(diǎn)是靈活,缺點(diǎn)就是站點(diǎn)比較多配置起來麻煩)
這里以配置2個站點(diǎn)(2個域名)為例,n個站點(diǎn)可以相應(yīng)增加調(diào)整,假設(shè):
ip地址:192.168.1.100
域名1 example1.com放在/ www / example1
域名2 example2.com放在/ www / example2
配置nginx虛擬主機(jī)的基本思路和步驟如下:
把2個站點(diǎn)example1.com,example2.com放到nginx可以訪問的目錄/ www /
給每個站點(diǎn)分別創(chuàng)建一個nginx配置文件example1.com.conf,example2.com.conf,并把配置文件放到/ usr / local / nginx / vhosts /
然后在/usr/local/nginx/nginx.conf里面加一句包括進(jìn)步2創(chuàng)建的配置文件全部包含進(jìn)來(用*號)
重啟nginx
1,打開/usr/local/nginx/nginix.conf文件,在相應(yīng)位置加入包括把以上2個文件包含進(jìn)來
用戶www www;
worker_processes 1;
#主服務(wù)器錯誤日志
error_log /usr/local/nginx/log/nginx/error.log;
pid /usr/local/nginx/nginx.pid;
事件{
worker_connections 51200;
}
#主服務(wù)器配置
http {
包括mime.types;
default_type application / octet-stream;
log_format main’$ remote_addr – $ remote_user [$ time_local] $ request’
‘“$ status”$ body_bytes_sent“$ http_referer”’
‘“$ http_user_agent”“$ http_x_forwarded_for”’;
發(fā)送文件;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip上
服務(wù)器{
聽80
服務(wù)器名稱 _;
access_log /usr/local/nginx/log/nginx/access.log main;
server_name_in_redirect關(guān)閉
位置 / {
root / usr / share / nginx / html;
index index.html;
}
}
#包含所有的虛擬主機(jī)的配置文件
包括/ usr / local / nginx / vhosts / *;
}
2,在/ usr / local / nginx下創(chuàng)建vhosts目錄
mkdir / usr / local / nginx / vhosts
3,在/ usr / local / nginx / vhosts /里創(chuàng)建一個名字為example1.com.conf的文件,把以下內(nèi)容拷進(jìn)去
服務(wù)器{
聽80
server_name example1.com www。example1.com;
access_log / www / access_ example1.log main;
位置 / {
root /www/example1.com;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root / usr / share / nginx / html;
}
#將php腳本傳遞給fastcgi服務(wù)器,偵聽127.0.0.1:9000
位置?.php $ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param script_filename /www/example1.com/$fastcgi_script_name;
包括fastcgi_params;
}
位置?/.ht {
拒絕所有
}
}
4,在/ usr / local / nginx / vhosts /里創(chuàng)建一個名字為example2.com.conf的文件,把以下內(nèi)容拷進(jìn)去
服務(wù)器{
聽80
server_name example2.com www。example2.com;
access_log / www / access_ example1.log main;
位置 / {
root /www/example2.com;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root / usr / share / nginx / html;
}
#將php腳本傳遞給fastcgi服務(wù)器,偵聽127.0.0.1:9000
位置?.php $ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fast