二、Nginx配置实例
Nginx配置实例
一、反向代理
实例一
1、实现效果
打开浏览器,在浏览器地址栏输入地址 www.123.com ,跳转到linux系统tomcat主页面中。
2、准备工作
- 在linux系统中安装tomcat,使用默认端口8080
3、访问过程分析
在浏览器地址栏输入地址,请求nginx反向代理服务器,nginx帮助我们将请求转发到linux中的tomcat服务器。
4、具体配置
- 在windows系统的host文件中进行域名和ip对应关系的配置
- 在nginx进行请求转发的配置
实例二
1、实现效果
使用nginx反向代理,根据访问的路径不同跳转到不同的端口服务中去。
nginx监听端口9001
访问 http://192.168.196.132:9001/edu/ 直接跳转到127.0.0.1:8080
访问 http://192.168.196.132:9001/vod/ 直接跳转到127.0.0.1:8081
2、准备工作
- 准备两个tomcat服务器,一个8080端口,一个8081端口
- 创建文件夹和测试页面
3、具体配置
- 在nginx的配置文件中进行反向代理的配置
二、负载均衡
1、实现效果
浏览器地址栏输入 http://192.168.196132/edu/a.html ,负载均衡的平均分发到监听8080端口和8081端口的两个tomcat服务器
2、准备工作
- 准备两台tomcat服务器,一台8080,一台8081
- 在两台tomcat里面webapps目录中,创建名称是edu的文件夹,在文件夹中创建页面a.html,用于测试
3、具体配置
4、nginx负载均衡策略
- 轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器
- weight:权重默认值为1,权重越高被分配的客户端越多
- ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器
三、动静分离
nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成知识单纯的把动态页面和静态页面物理分离,严格意义上说应该是动态请求跟静态请求分开,可以理解成使用nginx处理静态页面,tomcat处理动态页面,动静分离从目前实现角度大致分为两种,第一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另一种方法就是动态跟静态文件混合一起发布,通过nginx来分开。
1、准备工作
- 在linux系统中准备一些静态资源,用于进行访问
2、具体配置
四、高可用集群
nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。
为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。
1、keepalived+nginx实现主备
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
2、keepalived工作原理
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
- 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(VIP = Virtual IP Address,虚拟IP地址,该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
- keepalived主要有三个模块,分别是core、check和VRRP。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。VRRP模块是来实现VRRP协议的。
3、配置高可用集群
1、准备工作
- 需要两台nginx服务器
- 在两台服务器上安装keepalived
2、完成主从配置
- 完成主从服务器的keepalived的配置文件的编写
- 给两个服务器加入检测脚本