正向代理: 该服务器代理的为客户端,对于后面真实的服务器来说,不知道访问者的地址。比如:翻墙软件。
反向代理: 该服务器代理的为服务器端,对于客户来说不知道访问的真实服务器。
(1)准备一个spring boot项目打包
(2)将打包好的项目放在Linux系统下并解压
(3)修改nginx.conf配置文件
(4)进入nginx/sbin下重新加载nginx,启动nginx
(5)进入解压好的项目目录下启动项目(别忘记对访问端口防火墙放行)
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行。
(1)配置nginx.conf配置文件
(2)打开两个Linux系统窗口
分别运行与服务器地址一样的项目
(3)打开浏览器
输入服务器地址与nginx监听的端口
(4)刷新浏览器
刷新浏览器我们会发现浏览器显示的项目为两个项目轮替显示
为什么我们刷新网页会发现两个项目轮替呢?因为nginx默认负载均衡的策略为轮询策略。
nginx负载策略一共有五种:
(1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
(2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
(3)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
(4)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
(5)、url_hash(第三方)
nginx的高可用简单来说就是配置了两台(或更多)的nginx服务器,当主服务器宕机时,就会自动切换到备用服务器,从而保证项目的持续运行。
因为nginx作为反向代理服务器时,有可能出现宕机的情况,而由于其反向代理的特性,就会导致其他服务器(tomcat等)无法被访问,这样项目就停止工作了。但是使用了高可用后,就可以避免这种现象出现。
nginx的实现需要借助其他工具(keepalived)来实现。在keepalived中配置一个虚拟IP(VIP),同时keepalived会定时检查主服务器的工作状态(通过脚本实现)。在主服务器正常工作时,VIP就会映射到主服务器的IP,此时,虚拟ip对应的物理地址和主服务器IP对应的物理地址是相同的,所以访问虚拟IP即访问主服务器。当主服务器失效时,脚本就会监测到,从而根据预先的配置,找到优先级最高的备用服务器,并将虚拟IP映射到该备用服务器的ip,此时,这两个ip对应的物理地址时相同的。再主服务器回复正常时,又会被检测到,又会自动切换到主服务器。这样就实现了nginx的高可用。
1.准备两天虚拟机一共作为主机一共作为备用机
2.在两个虚拟机上安装keepalived
3.修改配置
两个虚拟机都要修改而且一个为主一个为从
配置文件默认在etc/ keepalived目录下
找到nginx启动脚本并修改
4.启动两台虚拟机
5.启动keepalived
6.访问
访问时一定要用设置的虚拟IP访问
7.关闭主虚拟机
你会发现访问还可以进行只不过由主虚拟机变为了从虚拟机