Nginx
1、Nginx轻量级服务器,抗住同时5W并发连接。
作用:做http服务器(反向代理)、虚拟主机、负载均衡、集群(实现动静分离)。
2、Nginx的作用:集群(减轻单台服务器的压力),反向代理(不爆露真实IP地址),静态服务器(动静分离)
3、项目安全架构措施
1、nginx反向代理(不爆露真实IP地址)
2、使用https防止抓包分析HTTP请求
3、搭建企业黑名单和白名单系统
4、模拟请求(csrf)、XSS、防sql注入
5、ddos(流量攻击) nginx解决
csrf:业务攻击,不断重复无用提交
ddos:流量攻击,不断的访问请求,占用带宽,让别人无法访问
4、跨域问题:
JSONP只支持GET请求而不支持POST等其他类型的HTTP请求。兼容性好,请求完毕后可以通过调用callback的方式回传结果。
Nginx反向代理,搭建api接口网关,
5、正向代理和反向代理
区别:正向代理代理客户端,反向代理代理服务器。
正向代理服务器位于客户端和服务器之间,为了向服务器获取数据,客户端要向代理服务器发送一个请求,并指定目标服务器,代理服务器将目标服务器返回的数据转交给客户端。
反向代理我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
6、Nginx的负载均衡机制
客户端发出两个请求去访问服务器集群,nginx会通过负载均衡机制不会让请求都访问到一个服务器上,会造成压力过大。
负载均衡:权重(按比例分配)、轮询机制、IP绑定。
7、搭建集群会出现什么情况?
1、分布式job幂等性(重复)问题
2、session会话共享问题
3、分布式生成全局ID
面试:在集群生成的订单ID怎么解决幂等性(重复性)问题
提前生成好,存放在redis中或者在同一时间只能生成一次订单号
8、服务器集群怎么实现的,使用Nginx实现负载均衡
反向代理时解决不爆露真实IP地址
9、集群与分布式
集群目的:减去单台服务器压力
分布式:将一个项目进行拆分多个子项目,分布式开发。
分布式开发RPC(dubbo一些框架实现)远程调用技术,对每个子项目之间进行通讯。
10、session共享解决方案
1、使用redis解决,存放在redis中
2、使用cookie 不安全
3、使用数据库 对数据库有压力
4、token重写session
如果服务器重启,如何解决session失效问题
使用redis持久化