在網上搜了一下,一般有兩種方法,第一種方法:在一個配置文件里面操作,把多個域名寫在一個配置文件里面,第二種方法:一個域名對應一個配置文件,我是按照第二種方法操作的。比如在一個服務器上面,需要配置的域名為:www.ceshi1.com,www.ceshi2.com,操作步驟為:
1:在/etc/nginx/下面建立文件夾vhosts
2:在/etc/nginx/vhosts/文件夾下面,建立文件www.ceshi1.com.conf,www.ceshi2.com.conf
3:在www.ceshi1.com.conf里面,配置信息:
server
{
listen 80;
server_name ceshi.banma.com; ------------》這里寫入你自己的域名(www.ceshi1.com)
index index.html index.htm index.php default.html default.htm default.php;
root /var/data/www/banma; --------項目的目錄
#error_page 404 /404.html;
location / {
index index.html 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(/|$)
{
# comment try_files $uri =404; to enable pathinfo
#try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
try_files $fastcgi_script_name =404;
#include fastcgi.conf;
#include pathinfo.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
# Disallow access to .ht, .svn, .bzr, .git, .hg, .cvs directories
location ~ /\.(ht|svn|bzr|git|hg|cvs) {
deny all;
}
#access_log /date/nginx/bmp.com.conf/access.log main;
}
4:www.ceshi2.com.conf文件里面的內容如上
5:在/etc/nginx/nginx.conf文件里面,包含你配置的兩個文件,加上一句話: include /etc/nginx/vhosts/*;
6:重啟nginx服務器:service nginx restart
如果重啟失敗,可以這個命令查看nginx的配置是否正確:nginx -t -c /etc/nginx/nginx.conf
7:在你的本地,hosts文件里面加上那兩個域名:服務器ip www.ceshi1.com,服務器ip www.ceshi2.com
現在介紹一下第一種方法在linux下配置虛擬域名:
在一個配置文件里面操作,把多個域名寫在一個配置文件里面
比如所有的配置文件都在/etc/nginx/conf.d目錄下面
打開一個配置文件:
然后在主配置文件里面:
重啟nginx
重啟nginx的過程中(service nginx restart)出現問題:
可以試一下
1:先關掉nginx:
nginx -s stop
2:開啟nginx:
nginx -c /etc/nginx/nginx.conf
最后一項在你的host文件里面加上這句話:
ip test.yii.com
這就大功告成了!!