nginx服务器支持配置多站点,我们可以通过配置子域名让你的一个域名下放置多个项目。
那么如何实现这个过程呢?
网络上的许多方案,有些写的过于繁杂,有些则是配置有误,或者说,有些配置项是要根据自己的主机实际环境来配置的。
一.假设你的项目路径是放在 /home/wwwroot/路径下,nginx的安装路径是 /usr/local/nginx/ 目录下
二.安装好nginx都会有默认的配置文件。文件路径为/usr/local/nginx/conf/nginx.conf
三.现在你需要将你的项目映射到多个域名下。首先查看nginx.conf文件最后一行,它表示include了当前vhost目录下的所有.conf文件。此时,假如没有vhost文件我们可以创建这个文件夹。
access_log /home/wwwlogs/access.log access;
}
include vhost/*.conf;
四.然后在vhost目录下新建一个你需要添加的域名配置文件,命名自定义。然后我们可以往里面添加内容。下面可以讲解一下几个具体的配置项目(简单的略过)。
1.index index.html index.php 表示默认的定位的文件,假如直接访问域名,会定位到index.html或者index.php文件
2.fastcgi_pass 这个命令是指定将http代理到哪个fastcgi服务端接口
3.fastcgi_index 该指令设置的文件会被附加到URI的后面并保存在变量$fastcgi_script_name中
4.fastcgi_param SCRIPT_FILENAME 脚本文件请求的路径
5.include fastcgi_params; 包含fastcgi_params中的所有参数
server{
listen 80;
server_name www.news.com;
root /home/wwwroot/news/;
location /{
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/tmp/fastcgi.socket;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; }
}
五.假如我们是在本机测试,设置了虚拟域名之后,我们如何在自己的linux主机*问呢?
1.我们可以通过修改/etc/hosts来让域名映射到自己的主机上。比如我之前定义的www.news.com
2.我们打开hosts文件,在后面添加 127.0.0.1 www.news.com
3.假如修改hosts文件还是无法访问。那说明还需要修改network文件。打开/etc/sysconfig/network文件,修改为 NETWORKING=yes,然后service network restart,重启network