并发请求很多的时候,需要多个服务器才能防止服务器崩掉,但服务器之间session不共享,所以需要反向代理服务器管理用户与服务器的连接。
反向代理服务器代替外部网络用户向内部服务器发出请求,即接收来自Internet上用户的连接请求,并将这些请求转发给内部网络上的服务器,然后将从内部服务器上得到的响应返回给Internet上请求连接的客户。
对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。用户不需要知道目标服务器的地址,作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
正向代理:代表所有客户端,所有访问服务器的请求都是来自一个客户端(可以理解为某个vpn)
反向代理:代表所有服务器,所有客户端都请求一个代理服务器
- 优点:并发能力强(支持五万个并发连接),占用内存小。
- 功能(1)反向代理;(2)负载均衡,方法:轮询(依次派发)、加权轮询、ip哈希(固定ip访问固定服务器,缺点:服务器挂了就丢失了信息);(3)动静分离,静态文件有一个专门的服务器;
- nginx中配置端口,它启动后会拦截访问配置端口的所有请求
- nginx常用命令:
命令 | 说明 |
---|---|
nginx | 启动 |
nginx -s stop | 停止(强制停止) |
nginx -s quit | 安全退出(逐项停止) |
nginx -s reload | 重新加载配置文件 |
ps aux | grep nginx |
-
反向代理,访问地址为localhost,内部进行分配到不同接口服务器,很强的扩展性。(proxy_pass,将所有请求都代理到服务,服务中配置端口和权重)
-
与cors区别
Item | CORS | Nginx反向代理 |
---|---|---|
代码配置–前端 | credentials=true | 无 |
代码配置–后台 | setHeader:ACA-Origin、ACA-Method、ACA-Credentials等 | 无 |
服务器配置 | 无 | Nginx配置 |
移植灵活性 | 高、无需额外配置 | 低、每套环境配置可能均不相同 |
安全性 | 来源可控、直接追溯 | X-Forwarded-For追溯多级来源 |
新项目扩展 | 黑白名单控制 | 更新配置,跨域模型会产生变化 |
jsonp:对浏览器支持性比较好,只用于获取资源(get请求),cors支持所有类型http请求。
item | jsonp | cors |
---|---|---|
跨域? | 不是 | 是 |
对浏览器支持度 | 都支持 | IE10以下不支持 |
支持请求类型 | get | 所有 |
错误处理 | 不能进行错误处理 | onerror事件监听错误,浏览器能看到报错信息 |
发送请求次数 | 1次 | 复杂请求cors发送两次 |
安全性 | 比较不安全 | 比较安全 |