• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

【Linux运维架构】Nginx服务搭建多个虚拟主机

Linux架构 lixian 5年前 (2020-02-21) 847次浏览 0个评论 扫描二维码
文章目录[隐藏]

一、include包含文件

上一篇搭建及部署Nginx已经详细介绍了如何部署Nginx服务,这里就不一一多叙述了,先看下面这一张图。
【Linux运维架构】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

验证:
浏览器输入域名直接访问验证。


本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:【Linux运维架构】Nginx服务搭建多个虚拟主机
喜欢 (0)

您必须 登录 才能发表评论!