博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx服务的虚拟主机
阅读量:6239 次
发布时间:2019-06-22

本文共 2318 字,大约阅读时间需要 7 分钟。

虚拟主机技术实现了不用为每一个要运行的网站提供一台单独的Nginx服务器或者运行一组单独的Nginx进程,虚拟主机提供了在同一台服务器上或同一组Nginx进程上运行多个网站的功能。

Nginx跟Apache一样,也可配置多种类型的虚拟主机,Apache搭建虚拟主机请参见;

Nginx创建虚拟主机类型:

  • 基于IP的虚拟主机
  • 基于域名的虚拟主机
  • 基于端口的虚拟主机

使用Nginx搭建虚拟主机服务器时,每个虚拟web站点拥有独立的“server{}”配置段,各自监听地址,端口号以及网站域名。

实验环境

  • Linux系统:Redhat6.5
  • Nginx服务软件:nginx-1.12
  • DNS服务器:192.168.100.111

实验部署

由于基于IP的虚拟主机需要在服务器端配置多个网卡,且每个网卡需要不同IP地址,受到IP地址限制以及成本控制,这种虚拟主机的配置成本偏高,故在本文中不做赘述!

1、基于域名的虚拟主机

实现基于域名的虚拟主机首先需要配置DNS域名解析服务,详细过程请参见;这里我选择域名为www.one.com和www.two.com两个域名。

解析结果如下:
Nginx服务的虚拟主机

注:配置不同域名的虚拟主机有两种方式:一是在原有配置文件中直接加入“server()”版块。二是在Nginx的配置文件目录conf下新建虚拟主机配置文件vhost.conf然后在主配置文件中添加行:include /usr/local/nginx/conf/*.conf

本文采用上述第二种配置方式为例,实现基于域名的虚拟主机:

让Nginx主配置文件支持虚拟主机配置文件

vim /usr/local/nginx/conf/nginx.conf

在主配置文件末尾大括号以内加入以下行:

include /usr/local/nginx/conf/vhost/*.conf;}

创建网站域名站点:

mkdir -p /var/www/one //创建one.com站点

mkdir -p /var/www/two //创建two.com站点

echo "this is one web" > /var/www/one/index.html   //创建域名one.com测试首页echo "this is two web" > /var/www/two/index.html   //创建域名two.com测试首页

创建虚拟主机单独配置文件:

cd /usr/local/nginx/conf

mkdir vhost
cd vhost
vim vhost.conf //虚拟主机独立配置文件

server {        server_name  www.one.com;    //虚拟主机名称        location / {            root   /var/www/one;     //站点位置            index  index.html index.php;        }    }    server {        server_name  www.two.com;        location / {            root   /var/www/two;            index  index.html index.php;        }    }

配置完成后,重启Nginx服务;基于域名的虚拟主机访问情况如下:

Nginx服务的虚拟主机

Nginx服务的虚拟主机

2、基于端口的虚拟主机

按照上述基于域名的虚拟主机,为每一个不同端口创建不同站点,添加独立的虚拟主机配置文件/conf/vhost/vhost.conf,且需要在主配置文件中添加:

include /usr/local/nginx/conf/vhost/*.conf;}

cd /usr/local/nginx/conf/vhost

vim /vhost.conf //编辑虚拟主机独立配置文件

server {        listen 192.168.100.111:250;        //监听服务器的端口        server_name 192.168.100.111:250;        location / {            root   /var/www/one;     //首页站点            index  index.html index.php;   //支持首页文件类型        }    }    server {        listen 192.168.100.111:222;        server_name 192.168.100.111:222;        location / {            root   /var/www/two;            index  index.html index.php;        }    }

注:此处需要注意的是与Apache虚拟主机基于端口模式区别,在Apache中添加虚拟端口后,需要在主配置文件中增加监听端口,而Nginx中虚拟主机独立配置文件已经注明服务IP地址的端口,因此不需要在主配置文件中增加监听端口。

killall -3 nginx //停止Nginx服务

nginx -t //检查主配置文件
nginx //启动Nginx服务

启动服务后,当用客户端访问其相同IP不同端口时,即出现不同页面:

Nginx服务的虚拟主机
Nginx服务的虚拟主机

转载于:https://blog.51cto.com/13659253/2131504

你可能感兴趣的文章
截杀“WannaCrypt”,终结“永恒之蓝”!
查看>>
Oracle内部视图:x$ktfbue
查看>>
【日常管理】Asm Diskgroup增加磁盘add disk
查看>>
Exadata下新建DiskGroup
查看>>
了解ocssd.bin如何控制RAC节点重启
查看>>
CentOS学习笔记 - 8. docker 编译基于gofabric8的java应用镜像
查看>>
关于ps cs6的滤镜 (抽出)
查看>>
项目版本管理(TFS)删除项目
查看>>
modprobe
查看>>
AQS实现原理及成果(有图有真相)
查看>>
js操作cookie
查看>>
access数据库注入
查看>>
MySQL + Atlas --- 部署读写分离
查看>>
Zabbix 2.2 LTS升级到Zabbix 3.0 LTS
查看>>
TortoiseSVN的使用
查看>>
数据分页时每页首条记录索引如何计算
查看>>
CSICO 常见操作命令
查看>>
sql中两个时间类型相减得到的值
查看>>
FastDFS安装配置
查看>>
Python格式化输出的四种方法
查看>>