Nginx03 虚拟主机
1 虚拟主机
虚拟主机使用特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每一台虚拟主机都具有独立的域名,具有完整的Internet服务器(WWW、FTP、Email等)功能,虚拟主机之间完全独立,并可由用户自行管理,在外界看来,每一台虚拟主机和一台独立的主机完全一样。
虚拟主机是为了在同一台物理机器上运行多个不同的网站,提高资源利用率引入的技术。
一般的web服务器一个ip地址的80端口只能正确对应一个网站。web服务器在不使用多个ip地址和端口的情况下,如果需要支持多个相对独立的网站就需要一种机制来分辨同一个ip地址上的不同网站的请求,这就出现了主机头绑定的方法。
简单的说就是,将不同的网站空间对应不同的域名,以连接请求中的域名字段来分发和应答正确的对应空间的文件执行结果。
举个例子来说,一台服务器ip地址为192.168.8.101,有两个域名和对应的空间在这台服务器上,使用的都是192.168.8.101的80端口来提供服务。如果只是简单的将两个域名A和B的域名记录解析到这个ip地址,那么web服务器在收到任何请求时反馈的都会是同一个网站的信息,这显然达不到要求。接下来我们使用主机头绑定域名A和B到他们对应的空间文件夹C和D。当含有域名A的web请求信息到达192.168.8.101时,web服务器将执行它对应的空间C中的首页文件,并返回给客户端,含有域名B的web请求信息同理,web服务器将执行它对应的空间D中的首页文件,并返回给客户端,所以在使用主机头绑定功能后就不能使用ip地址访问其上的任何网站了,因为请求信息中不存在域名信息,就会出错
2 域名、dns、ip地址的关系
域名是相对网站来说的,IP是相对网络来说的。当输入一个域名的时候,网页是如何做出反应的?
输入域名---->域名解析服务器(dns)解析成ip地址—>访问IP地址—>完成访问的内容—>返回信息。
一个ip地址可以对应很多个域名
dns详细介绍:ttps://www.cnblogs.com/jthr/p/15890325.html
3 实例
3.1 配置多个server
修改nginx.cfg文件

下面配置了三个server
nginx1.com:访问到了是mynginx/nginx1下面的资源
nginx2.com:访问到了是mynginx/nginx2下面的资源
nginx3.com:访问到了是mynginx/nginx3下面的资源
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name nginx1.com;
location / {
root /usr/local/mynginx/nginx1; #这里采用的是绝对路径也可以采用相抵路径,相对路径是相对于nginx的安装目录
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name nginx2.com;
location / {
root /usr/local/mynginx/nginx2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name nginx3.com;
location / {
root /usr/local/mynginx/nginx3;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
3.2 创建mynginx及下面的文件夹和资源
1)创建mynginx文件夹

2)创建nginx1文件夹

3)在nginx1创建index.heml

输入内容:nginx1

4)创建nginx2和nginx3文件夹及下面的index文件,index的内容分别为nginx2和nginx3

3.3 重新加载nginx使配置生效
systemctl reload nginx
3.4 配置本级的映射
此时直接通过域名访问是访问不到的。因为我们这里的域名不是真正的域名,没有和nginx所在服务器的ip绑定。

所以,我们需要做一个本地映射
找到计算机的host文件

加如下上配置,这样子,我们在计算机上访问nginx1.com就会被映射到192.168.28.110,也就是nginx所在服务器的ip
#本地域名映射nginx
192.168.28.110 nginx1.com
192.168.28.110 nginx2.com
192.168.28.110 nginx3.com
3.5 访问
注意可能存在缓存影响



4 配置server中server_name 的规则
server中可以配置多个域名
4.1 完整匹配
server_name test81.xzj520520.cn test82.xzj520520.cn;
4.2 通配符匹配
server_name *.xzj520520.cn;
需要注意的是精确匹配的优先级大于通配符匹配和正则匹配
4.3 正则匹配
https://www.cnblogs.com/jthr/p/11903710.html
Nginx03 虚拟主机的更多相关文章
- 在开启DRS的集群中修复VMware虚拟主机启动问题
通过iSCSI方式连接到ESXi主机上的外挂存储意外失联了一段时间,导致部分虚拟主机在集群中呈现出孤立的状态,单独登陆到每台ESXi上可以看到这些虚拟主机都变成了unknow状态.因为有过上一次(VM ...
- ubuntu15.04 nginx1.6.5 配置虚拟主机
1 在/etc/hosts 添加host 2 在/etc/nginx/nginx.conf中查看http里的include ****** /*.conf的路径,在此路径下添加一个新的******. ...
- 使用WampServer环境,如何配置虚拟主机域名
很多人不会配置虚拟主机,我这里简单交一下大家,分三步: 1.在 C:\Windows\System32\drivers\etc 文件夹中的文件 Hosts 文件修改代码为: 127.0.0.1 loc ...
- linux(十二)___Apache服务器用户认证、虚拟主机的配置
创建xiangkejin zhangsan两个用户 可看见文件中创建的两个用户: 建立虚拟目录并配置用户认证 ①建立虚拟目录 /xiangkejin ②在Apache的主配置文件httpd.conf ...
- nginx 虚拟主机配置
user nginx; #代表使用的用户 worker_processes auto; #工作衍生进程数,一般代表系统cpu核数一到两倍最好 error_log /var/log/nginx/erro ...
- CentOS 7 配置虚拟主机站点
1.进入/etc/httpd/conf 下 将httpd.conf 打开. 2.将DocumentRoot注释掉.(将ServerName 打开要不会有错误警告). 3.将虚拟主机站点配置包含进来:I ...
- Linux服务器配置多台虚拟主机
2016年11月4日15:59:12 LAMP环境 参考:http://blog.itblood.com/nginx-same-ip-multi-domain-configuration.html 在 ...
- apache 配虚拟主机转发到tomcat
我用的是apache2.4.23, 连接tomcat使用自带的 proxy-ajp,需要开启相关模块 引用 http://www.server110.com/apache/201404/10273.h ...
- Linux下添加apache虚拟主机
一切在确保apache被正确安装的前提下 设置虚拟主机 创建虚拟目录 现在,让我们继续安装虚拟主机.虚拟主机命名为local.gis. 创建一个公用的文件夹来存放这虚拟主机的数据. 首先,让我们为lo ...
- Apache服务器在80端口配置多域名虚拟主机的方法
我们在配置一台服务器的时候,如果只运行一个站点,往往过于浪费资源.Nginx和Apache都可以通过配置虚拟主机实现多站点.配置虚拟主机的方式主要有两种,一种是多个不同端口对应的多个虚拟主机站点,一种 ...
随机推荐
- day15-Servlet04
Servlet04 12.ServletConfig 12.1ServletConfig基本介绍 ServletConfig类是为Servlet程序配置信息的类 Servlet对象和ServletCo ...
- docker和docker-compose便捷安装
安装docker: curl -fsSL get.docker.com -o get-docker.sh&&sh get-docker.sh 或: curl -sSL https:// ...
- 【图像处理笔记】SIFT算法原理与源码分析
[图像处理笔记]总目录 0 引言 特征提取就是从图像中提取显著并且具有可区分性和可匹配性的点结构.常见的点结构一般为图像内容中的角点.交叉点.闭合区域中心点等具有一定物理结构的点,而提取点结构的一般思 ...
- 使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例
译者注 本文是一篇不可多得的好文,MemoryPack 的作者 neuecc 大佬通过本文解释了他是如何将序列化程序性能提升到极致的:其中从很多方面(可变长度.字符串.集合等)解释了一些性能优化的技巧 ...
- Java内存马的学习总结
1.前置知识 Java Web三大组件 Servlet Servlet是运行在 Web 服务器或应用服务器上的程序,它是作为来自 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中 ...
- 4.9:MapReduce之WordCount
〇.概述 1.拓扑结构 2.目标 使用hadoop的MapReduce来实现计数. 一.启动服务 二.新建计算的文件 三.上传文件 四.分析文件 cd ~/bigdatahadoop jar Word ...
- 【消息队列面试】6-10:Rebalance机制、副本同步机制、架构设计、zk的作用、kafka的高性能
六.简述kafka的Rebalance[偏向实战,有难度] 1.背景 kafka日志:在消息量大.高并发时,经常会出现rebalance中 rebalance会影响kafka性能,会阻塞partiti ...
- ffmpeg库安装及入门指南(Windows篇)- 2022年底钜献
最近项目需要,使用了 ffmpeg 做摄像头视频采集和串流.这几天有点时间,打算把相关的一些知识记录分享一下. 在撰写本文时,我又在另外一台电脑上把 ffmpeg 重新安装了一遍,所以绝对真实靠谱!如 ...
- Qt对象跨线程出现的问题记录,以及解决方案
Qt在跨线程开发的时候可能会出现不少问题,在这里记录一下 Qt目前用下来还是非常强大的,虽然只是用在桌面端程序开发上,但是其强大的桌面开发库真的挺好用的(Layout除外,你妈死了). Qt除了UI, ...
- 想做长期的 AB 实验?快来看看这些坑你踩了没
作者:江颢 1.什么是长期的 AB 实验 大部分情况下,我们做的 AB 实验都是短期的,一到两周或者一个月之内的,通过分析这段时期内测得的实验效应得出实验结论,并最终进行推广. 长期实验即运行时间达数 ...