Java架构学习(三十一) nginx基础&安全架构体系&windows安装nginx&nginx反向代理&nginx搭建集群&负载均衡策略&容错机制&nginx搭建企业接口网关

nginx基础

一、nginx基础与安全体系架构

nginx的作用:
	1、nginx做反向代理、代理服务器、静态服务器。
	2、nginx作用:
		做集群(减轻单台服务器的压力)。
		反向代理:不暴露真实的ip地址。
	3、虚拟服务器。 静态服务器。(动静分离)
面试官问安全架构的时候可以说
	nignx实现方向代理(不暴露真实ip).
	使用Https防止抓包分析请求
	搭建企业黑名单和白名单系统
	模拟请求(CSRF):属于业务攻击
	XSS、SQL注入、反盗链。
	ddos(流量攻击)使用nginx解决:属于流量攻击,
	比如占用宽带,让别人无法访问。
	nginx:性能非常好、占内存小、是轻量级服务器、
	       能扛住同时5万并发连接。
3、类似做nginx反向代理的服务器有:lvs(中国人写的)、
                   F5(不推荐与硬件打交道)、Haproxy。

二、windows安装nginx

nginx作用:
	1、http服务器(反向代理)
	2、虚拟主机
	3、负载均衡
	4、集群
	5、网站动静分离

这里写图片描述
nginx服务器启动直接点击就可以启动了。
默认端口是80端口。
80端口是浏览器默认端口。http默认端口。
访问127.0.0.1:80显示nginx页面就是成功了。
三、nginx反向代理 概念

什么是反向代理?
答:
什么是集群?
答:集群就是多台服务器如多台tomcat。
	集群会产生的问题:
		1、分布式job幂等性(重复)问题。
			使用xxLjob分布式任务调度平台
		2、会话共享问题
			session存放的问题。
			session不同步的问题。因为有两多个tomcat.
		3、分布式生成全局ID
			生成订单ID,
			订单好怎么解决幂等性问题。
			使用提前生成好的订单ID,存放在redis中,
			快使用完的时候再生成一批订单号存放在redis中。
			使用分布式锁,多个jvm来进行通讯。
什么是分布式?
答:

单台服务器、接受高并发的情况下会宕机、瘫痪。
	高并发第一种解决方案就是集群。
负载均衡算法:1、权重、2、轮询机制 3、IP绑定。

这里写图片描述

四、使用nginx搭建集群

服务器集群怎么实现,使用nginx实现负载均衡:
反向代理解决的是暴露真实ip地址的。
负载均衡是实现集群的。
集群与分布式有什么不同?
答:集群目的:解决单台服务器的压力
   分布式目的:将一个项目进行拆分n个多个子项目,
             分布式开发的目的完成同一个大体功能。
             分布式开发RPC远程调用技术。
  演变过程:
  单点应用---->面向服务架构(SOA)webservice -->微服务架构
  http+json格式进行传输SpringCloud restful.

主要配置就是在nginx.conf里面配置
配置集群之前,先配置反向代理,再去搭建nginx配置负载均衡

这里写图片描述

nginx配置反向代理

windows host文件 目录  C:\Windows\System32\drivers\etc

这里写图片描述

配置反向代理
第一步、

这里写图片描述
第二步、
这里写图片描述

反向代理配置:

在这里插入图片描述

反向代理图:

反向代理描述

集群就是减轻单台服务器的压力

先是有反向代理---->负载均衡—>集群

五、负载均衡策略

负载均衡的作用:提高网站的吞吐量 (接受响应),减轻单台服务器的压力。
							吞:接受
							吐:响应

nginx负载均衡算法:轮询机制(机器都相同)、权重(比例分配)、
IP绑定(没有用,只让一个ip进行访问,解决会话共享问题)、
fair第三方、url_hash。
                                  后面两种不重要

在这里插入图片描述

权重配置:

在这里插入图片描述
ip绑定配置:
在这里插入图片描述

这上面ip绑定的表示一直会访问这个127.0.0.1:8080这个网站.

六、服务器宕机容错机制方案(高可用)

幂等:重复的意思
容错机制:就是解决办法的意思
服务器宕机容错机制(高可用):一主一备或者多主多备

	使用高可用工具keepalived来重启服务。keepalived是重启脚本,
	如果重启N多次服务器还是重启失败,就会发送报警邮箱给运维人员。

方案:1、使用keepalived重启服务器脚本,重启服务。
			2、nginx配置集群宕机,自动轮询到下一台服务器。

在这里插入图片描述

	3、做一主一备

在这里插入图片描述

tomcat如果发布版本的时候session会失效怎么解决?
答:存放在redis中,或者存放在数据库中。

七、使用nginx搭建企业API接口网关

什么是跨域问题?
答:当前端AJAX访问请求域名与浏览器访问的地址不相同,存在跨域问题。
		解决跨域的5种方法
		答:1、jsonp  不支持post请求,支持get请求。

在这里插入图片描述

2、httpclient 进行内部转发。
3、使用http响应头允许跨域设置。
	设置响应头

在这里插入图片描述

  4、使用nginx搭建企业API接口网关。
		原理:域名相同,项目不同,进行拦截,通过nginx跳转到真实服务器中。
  5、使用SpringCloud springZULL接口网关。

在这里插入图片描述

企业接口网关搭建

第一步:复制一个server进行配置转发

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值