nginx-基础知识(二)
目录
虚拟主机
虚拟主机的功能
虚拟主机的划分方式
基于IP地址进行划分
基于域名进行划分
正向/反向代理
正向代理
反向代理
正向代理和反向代理的区别
负载均衡
负载均衡的类型
负载均衡的作用
nginx并发量比较高的原因
负载均衡的算法
会话保持
虚拟主机
虚拟主机的功能
负责发布需要上传的一些资源
虚拟主机的划分方式
基于端口号进行划分
#使用80端口配置虚拟主机
server {
listen 80 ;
server_name localhost ;
location / {root /usr/share/nginx/webOne ;index index.html index.htm ;}
}#使用81端口配置虚拟主机
server {
listen 81 ;
server_name localhost ;
location / {root /usr/share/nginx/webTwo ;index index.html index.htm ;}
}#使用82端口配置虚拟主机
server {
listen 82 ;
server_name localhost ;
location / {root /usr/share/nginx/webThree ;index index.html index.htm ;}
}
基于IP地址进行划分
#使用192.168.211.145进行虚拟主机的配置
server {
listen 192.168.211.145:80 ;
server_name localhost ;
localtion / {root /usr/share/nginx/webOne ;index index.html index.htm ;}
}#使用192.168.211.155进行虚拟主机的配置
server {
listen 192.168.211.145:80 ;
server_name localhost ;
localtion / {root /usr/share/nginx/webTwo ;index index.html index.htm ;}
}#使用192.168.211.165进行虚拟主机的配置
server {
listen 192.168.211.145:80 ;
server_name localhost ;
localtion / {root /usr/share/nginx/webThree ;index index.html index.htm ;}
}
基于域名进行划分
#使用www.abc.com进行虚拟主机的配置
server {
listen 80;
server_name www.abc.com ;
location / {root /usr/share/nginx/webOne ;index index.html index.htm ;}
}#使用www.bcd.com进行虚拟主机的配置
server {
listen 80;
server_name www.bcd.com ;
location / {root /usr/share/nginx/webTwo ;index index.html index.htm ;}
}#使用www.cde.com进行虚拟主机的配置
server {
listen 80;
server_name www.cde.com ;
location / {root /usr/share/nginx/webThree ;index index.html index.htm ;}
}
正向/反向代理
正向代理
客户端配置代理来代替自己进行请求,使用正向代理时,客户端对服务器来说是透明的,服务端不知道客户端的真是地址,常见的应用为翻墙软件的实现
反向代理
服务端通过设置代理来隐藏自己的真实信息,因此,反向代理过程中,服务端对于客户端是透明的
正向代理和反向代理的区别
正向代理过程中:客户端的请求由代理服务器进行转发,然后获取返回信息后,将返回的信息给客户端,因此过程中客户端的地址对于服务器是透明的;
反向代理过程中,客户端的请求转发给代理服务器,由代理服务器发送给服务端,所以过程中,服务器对于客户端来说是透明的
负载均衡
负载均衡的类型
软件: nginx haproxy LVS
特点: 低成本,无需硬件,利用现有服务器资源计科进行部署,开源支持,可以运行在物理机,虚拟机或者容器中
适用于中小型企业或者初创公司
云设备:AWS Elastic Load Balancing(ELB)
支持应用负载均衡,网络负载均衡,和经典负载均衡
使用与云原生或微服务架构,跨国或跨区域业务
硬件:F5, A10 Network Thunder
特点:高性能,高成本,高可靠性
适用于大型企业或数据中心,对性能和可靠性要求极高的关键业务
负载均衡的作用
如果代理服务器将所有的请求转发给同一台服务器,那么单台主机的压力会比较大,并且单台主机的性能会产生瓶颈,对于业务的影响比较大,因此可以使用负载均衡来对多个相同的web页面或者服务进行代理,从而实现业务性能的提高。当客户端发送请求到代理服务器时,代理服务器将请求通过负载均衡算法分发给不同的后台服务端,从而实现请求的分发,降低了单节点主机的压力,从而提高了整体业务的性能
nginx并发量比较高的原因
首先nginx采用模块化的方式,不同的模块对应不同的功能--常用模块以及作用
其次,nginx采用异步非阻塞的方式进行请求的处理--用自己的话叙述异步非阻塞
最后,nginx采用I/O多路复用来进行消息的处理---用自己的话叙述I/O多路复用
负载均衡的算法
默认算法;
轮询: 当请求从代理转发到服务器时,代理会挨个对请求进行转发
缺点: 当各个服务器的配置不同时,可能会导致配置较差的服务器产生性能问题
解决方法;
加权轮询: 对于不同的服务端设置不同的权重,权重较大的服务端会被优先分配请求
其他算法;.
ip_hash:当相同的服务端ip进行请求时,总是会使用相同的代理服务器进行请求的返回
url_hash:根据请求的URL进行请求分发,保证相同的URL请求由同一台主机进行返回
缺点:当后台的主机宕机时,所请求的信息不能得到正常的返回结果
lease_conn: 当代理进行请求分发时,优先对连接数较少的主机进行请求的分发
lease_time: 当代理进行请求分发时,根据平均处理时间和连接数量进行请求的分配
会话保持
ip_hash和url_hash进行会话的保持,可以提高用户的使用体验