今天,朋友有个网站要挂在我的服务器上,鼓捣了一下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进程,加载新配置,完成任务