利用虚拟主机,不用为每个要运行的网站供应一台单独的Nginx做事器或单独运行一组Nginx进程。
虚拟主机供应了在同一台做事器、同一组Nginx进程上运行多个网站的功能。

配置虚拟主机

我们先配置在一个nginx中配置一个虚拟主机,编辑nginx.conf配置文件,在http模块中,配置server模块,一个server模块就针对一个虚拟主机。

我们仿照一个独立的网站,此网站域名访问为www.server1.com;网站的根目录放到nginx目录下html/server1目录,我们创建一个首页index.html到server1中,编辑index.html

nginxphp虚拟主机配置nginx七nginx的虚拟主机设置装备摆设 RESTful API

<!DOCTYPE html>

<html>

<head>

<title>server1 首页</title>

</head>

<body>

<h1>server1 首页</h1>

</body>

</html>

下面我们回到nginx.conf配置文件中,配置server模块

server {

listen 80; #监听80端口

server_name www.server1.com; #虚拟主机名,可以为域名或ip地址

location / { #默认要求路由,往后文章中会重点先容

root html/server1; #网站的根目录

index index.html index.htm; #默认首页文件名

}

}

配置完成之后,重启nginx。
由于www.server1.com是仿照的,须要在访问的客户端配置一下域名映射,老顾访问的客户端用的是windows系统,以是要到C:\Windows\System32\drivers\etc\目录下,编辑hosts文件,增加个映射

192.168.5.138 www.server1.com

192.168.5.138是老顾的nginx做事器地址,把稳编辑hosts要用管理员身份编辑,要不然会报无权限修正缺点。

打开浏览器,访问www.server1.com

第一个虚拟主机配置完成,我们再配置一个server2,与server1配置类似,先给server2网站创建一个根目录,nginx目录下html/server2目录,编辑index.html

<!DOCTYPE html>

<html>

<head>

<title>server2</title>

</head>

<body>

<h1>server2 首页</h1>

</body>

</html>

再编辑nginx.conf,再增加个server模块,监听还是80端口,但做事名改为www.server2.com

server {

listen 80; #监听80端口

server_name www.server2.com; #虚拟主机名,可以为域名或ip地址

location / { #默认要求路由,往后文章中会重点先容

root html/server2; #网站的根目录

index index.html index.htm; #默认首页文件名

}

}

重启nginx,不要忘了把hosts再增加个域名映射

192.168.5.138 www.server2.com

打开浏览器访问www.server2.com,运行结果

这样第二个虚拟主机也配置完成。
解释一下 再配置server模块是,监听的端口 listen 和 server_name 组合起来是唯一的,如果server_name一样,那么listen监听的端口就不一样;如端口一样,server_name就不一样。
这是很好理解的,虚拟主机的要求映射系统才能够判别。