一、include包含文件
上一篇搭建及部署Nginx已经详细介绍了如何部署Nginx服务,这里就不一一多叙述了,先看下面这一张图。
当我们搭建完一个Nginx服务,(默认yum安装配置文件是/etc/nginx/nginx.conf)编译安装可以自定义安装目录,找到nginx的配置文件。
我们可以将配置文件细分很多层,先是http层,下面有个server层。一个server层就代表一个网站,通常会将server层单独放一个目录下,然后include包含这个目录,相当于nginx读取http层时,看到include会先去include对应的目录去读取,读取完include之后再去往下读取,这样便于管理。
(以下我用的编译安装nginx)
二、搭建多虚拟主机
在企业中,部署nginx服务网站会不止一个网站,会有多个主机,这里就用到了虚拟主机,也就是上图的server层,一个server就是一个虚拟主机。下面我们来搭建多个虚拟主机。
1.更改nginx.conf配置文件
这里将server层剪切,创建个conf.d目录,然后编辑game.conf文件将server层粘贴里面。
(1).创建conf.d目录
[root@web01 code]# mkdir /usr/local/nginx/conf/conf.d
(2).更改nginx.conf配置文件
[root@web01 code]# vim /usr/local/nginx/conf/nginx.conf worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; include /usr/local/nginx/conf/conf.d/*.conf; }
2.编写多server层虚拟主机
一个conf文件就是一个虚拟主机。(似不似超简单)
[root@web01 ~]# vim /usr/local/nginx/conf/conf.d/game.conf server { listen 80; server_name localhost; location / { root /code/game; index index.html; } }
再搭建个虚拟主机
[root@web01 ~]# vim /usr/local/nginx/conf/conf.d/book.conf server { listen 80; server_name localhost; location / { root /code/book; index index.html; } }
3.重启nginx服务或者reload重载nginx配置文件
[root@web01 ~]# systemctl restart nginx [root@web01 ~]# systemctl reload nginx
4.搭建网站目录
[root@web01 ~]# mkdir -p /code/game [root@web01 ~]# mkdir -p /code/book [root@web01 ~]# echo 'game' >/code/game/index.html [root@web01 ~]# echo 'book' >/code/book/index.html
三、实现虚拟主机的三种方式
1.基于多ip方式
[root@web01 conf.d]# cat book.conf server { listen 172.16.1.7:80; server_name localhost; location / { root /code/book; index index.html; } }
[root@web01 conf.d]# cat game.conf server { listen 10.0.0.7:80; server_name localhost; location / { root /code/game; index index.html; } }
验证:
浏览器输入ip地址验证也可以
[root@web01 conf.d]# systemctl restart nginx [root@web01 conf.d]# curl 172.16.1.7 book [root@web01 conf.d]# curl 10.0.0.7 game
2.基于多端口方式(企业测试环境经常使用)
[root@web01 conf.d]# cat book.conf server { listen 80; server_name localhost; location / { root /code/book; index index.html; } }
[root@web01 conf.d]# cat game.conf server { listen 81; server_name localhost; location / { root /code/game; index index.html; } }
验证:
浏览器输入ip+端口号访问验证也可以
[root@web01 conf.d]# systemctl restart nginx [root@web01 conf.d]# curl 10.0.0.7:80 book [root@web01 conf.d]# curl 10.0.0.7:81 game
3.基于多域名方式(企业生产环境经常使用)
[root@web01 conf.d]# cat book.conf server { listen 80; server_name www.book.com; location / { root /code/book; index index.html; } }
[root@web01 conf.d]# cat game.conf server { listen 80; server_name www.game.com; location / { root /code/game; index index.html; } }
修改本地hosts
C:\Windows\System32\drivers\etc\hosts文件
插入以下内容:
10.0.0.7 www.book.com www.game.com
验证:
浏览器输入域名直接访问验证。