×

nginx虚拟主机配置教程

分类:虚机资讯 编辑: 浏览量:100
2021-07-23 14:31:24
  什么是虚拟主机?虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。在真实的服务器环境,为了充分利用服务器资源,一台nginx web服务器会同时配置N个虚拟主机,这样可以充分利用服务器的资源,方便管理员的统一管理。下面就由新网小编和大家讲一讲nginx虚拟主机配置教程。

  一、Nginx的应用概述

  Nginx作为一款高性能的http服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。

  1、http服务器

  Nginx是一个http服务可以独立提供http服务

  2、虚拟主机

  可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

  3、反向代理,负载均衡

  当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

  二、什么是虚拟主机

  虚拟主机技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP(Hypertext Transfer Protocol,超文本传输协议)服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。

  虚拟主机是使用特殊的软硬件技术,把一台真实的物理服务器主机分割成多个逻辑存储单元。每个逻辑单元都没有物理实体,但是每一个逻辑单元都能像真实的物理主机一样在网络上工作,具有单独的IP地址(或共享的IP地址)、独立的域名以及完整的Internet服务器(支持WWW、FTP、E-mail等)功能。

  虚拟主机的关键技术在于,即使在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程式,也互不干扰。而各个用户拥有自己的一部分系统资源(IP地址、文档存储空间、内存、CPU等)。各个虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台单独的主机的表现完全相同。所以这种被虚拟化的逻辑主机被形象地称为“虚拟主机”。

  三、基于IP的虚拟主机

  基于IP地址的虚拟主机原理:相同端口,相同域名,不同的IP地址;也就是说多个虚拟主机之间拥有相同的端口和域名,使用IP地址不同的方式区分不同虚拟主机,当然访问的时候就需要使用不同IP或者域名去访问了,绑定域名时也就需要不同域名绑定不同ip地址,但不可一个域名绑定多个ip

  配置

  http{ ......省略其他代码 #第一台虚拟主机 server { listen IP地址:80; server_name a.jkyst.xy或者ip地址; access_log logs/a.access.log; location{ root html/a; index index.html index.htm; } ......省略其他代码 } #第二台虚拟主机 server{ listen IP地址:80; server_name b.jkyst.xyz或者IP地址; access_log logs/b.access.log; location{ root html/b; index index.html index.htm; } ......省略其他代码 } #第三台虚拟主机 server{ listen IP地址:80; server_name c.jkyst.xyz或者IP地址; access_log logs/c.access.log; location{ root html/c; index index.html index.htm; } ......省略其他代码 } }

  实战

  这里为大家演示一种虚拟主机的实现,因为基于域名的虚拟主机比较常见这里就为大家演示这种虚拟主机

  环境介绍

  操作系统版本:

  root@jia:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 19.10 Release: 19.10 Codename: eoan root@jia:~# cat /proc/version Linux version 5.3.0-18-generic (buildd@lcy01-amd64-027) (gcc version 9.2.1 20190909 (Ubuntu 9.2.1-8ubuntu1)) #19-Ubuntu SMP Tue Oct 8 20:14:06 UTC 2019

  nginx版本:

  root@jia:~# nginx -v nginx version: nginx/1.16.1 (Ubuntu)

  配置nginx.conf

  配置文件位置:/etc/nginx/conf.d/*.conf

  nginx安装方式不同位置不同,具体请查看自己的配置文件位置

  下面是配置文件内容:

  root@jia:/var/www/html# cat /etc/nginx/conf.d/default.conf server { listen 80; server_name a.jkyst.xyz; location / { root /var/www/html/a; index index.html index.htm; } } server { listen 80; server_name b.jkyst.xyz; location / { root /var/www/html/b; index index.html index.htm; } } server { listen 80; server_name c.jkyst.xyz; location / { root /var/www/html/c; index index.html index.htm; }

  记住修改配置文件后一定要重新启动nginx

  root@jia:~# systemctl restart nginx

  创建主页文件

  首先创建存放主页html文件的目录

  root@jia:~# cd /var/www/html/ root@jia:/var/www/html# mkdir a b c #生成主页文件 root@jia:/var/www/html# echo a.jkyst.xyz > a/index.html root@jia:/var/www/html# echo b.jkyst.xyz > b/index.html root@jia:/var/www/html# echo c.jkyst.xyz > c/index.html

  修改host文件

  这里修改hosts文件需要注意一下,在那个PC上面验证就在那个PC上面修改host文件

  windows主机hosts文件路径:C:\Windows\System32\drivers\etc

  linux版本hosts文件路径:/etc/

  需要写入的内容

  127.0.0.1 a.jkyst.xyz //127.0.0.1是nginx服务器的IP地址,我这里使用的是同一台PC 127.0.0.1 b.jkyst.xyz 127.0.0.1 c.jkyst.xyz

  测试

  root@jia:~# curl a.jkyst.xyz a.jkyst.xyz root@jia:~# curl b.jkyst.xyz b.jkyst.xyz root@jia:~# curl c.jkyst.xyz c.jkyst.xyz

  Nginx是一款开源的、跨平台的高性能web服务器,它有着高性能,稳定性高,配置简单,模块结构化,资源消耗低的优点。同时支持反向代理、负载均衡、缓存的功能。其采用多进程+epoll(IO多路复用)模型,也对互联网高并发连接业务有着很好的支持。小伙伴们要想获得更多nginx虚拟主机的内容,请关注新网!

声明:免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发

送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。本站原创内容未经允许不得转载,或转载时

需注明出处:新网idc知识百科

免费咨询获取折扣

Loading