nginx反向代理与缓存功能

目录

一,正向代理和反向代理

1,正向代理概述

2,反向代理概述

二,配置实战

1,实现反向代理负载均衡

三,nginx配置跨域cors

1,跨域的定义

2,同源的定义

3,不同源的限制

4,nginx解决跨域的原理

5,案例


一,正向代理和反向代理

1,正向代理概述

正向代理是一个位于客户端和目标服务器之间的代理服务器。为了从目标服务器得到目标,客户端向代理服务器发送一个请求,并且指定目标服务器,再代理向目标服务器转发请求,将得到的目标返回给客户端。

正向代理的作用

为防火墙的内部局域网客户端提供访问Internet的途径

可以使用缓冲特性减少网络运用率

访问受地理位置限制的网络

运用代理后会隐藏真实的IP地址

2,反向代理概述

反向代理指的是代理外网用户的需要到内部的指定的服务器,并将数据返回给客户的一种方式

客户端不直接和后端服务器进行通信,而是和反向代理服务器进行通信,隐藏了后端服务器的IP地址

反向代理可实现的功能

反向代理的主要作用是提供负载均衡和高可用性

负载均衡:nginx可以将传入的需要分发给多个后端服务器,以平衡服务器的负载,提高系统性能和可靠性

缓冲功能:nginx可以缓存静态文件和动态页面,减轻服务器的负载,提高响应速度

动静分离:将动态生成的目标和静态资源,分别存放在不同房的服务器和路径之内

多站点代理:nginx可以代理多个域名和虚拟主机,讲不通的需要转发到不同的后端服务器之内,实现多个站点的共享端口

二,配置实战

1,实现反向代理负载均衡

nginx可以基于nginx_http_upstream_module模块提供服务器分组转发,权重分配,状态检测,调度算法等高级功能

基本原理:nginx的负载均衡原理是基于反向代理和事件驱动的机制,当客户端发送需要时,nginx作为反向代理服务器接收需要,并根据配置的负载均衡算法将需要转发到后端的多个服务器之内,实现负载均衡

三,nginx配置跨域cors

1,跨域的定义

同源策略限制了从同一个源加载的文档和脚本怎么和来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安保机制。通常不允许不同源间的读操作

2,同源的定义

两个页面的协议,端口和域名都相同,则两个页面具有相同的源

http://store.company.com/dir/page.html为例:

http://store.company.com/dir2/other.html为同源

http://store.company.com/secure.html为不同源,因为协议不同

http://store.company.com:81/dir/etc.html为不同源,因为端口不通

http://news.company.com/dir/other.html为不同源,因为主机不同

3,不同源的限制

web数据层面,同源策略限制了不同源的站点读取当下站点的cookie,indexDB,localstorage等数据

dom层面,同源策略限制了来自不同源的javascript脚本对当下dom对象读和写的操作

网络层面,同源策略限制了通过xmlhttprequest等方式将站点的数据发送给不同源的站点

4,nginx解决跨域的原理

浏览器的同源策略限制了跨域需要,但当用nginx作为代理服务器时,浏览器发送的需要实际上是发送到与前端页面同源的nginx服务器。nginx再将需要转发到真正的目标服务器,目标服务器返回的响应再通过nginx返回给浏览器。从浏览器的角度看,它只和同源的nginx服务器进行交互,从而躲过了cors限制

5,案例

一端的server的域名为:fe.server.com

后端服务的域名为:dev.server.com

现在fe.server.com对dev.server.com发需要一定会出现跨域

现在我们只需要打开一个nginx服务器,将server_name设置为fe.server.com在设置相应的location以拦截前端需要跨域的需要,最后将需要代理回dev.server.com

打赏链接:

相关推荐
luyun0202026 分钟前
论坛里的小工具,吾爱出品
运维·服务器·windows
Miao121311 小时前
工程交付指标入门:如何重新掌控软件交付
大数据·运维·devops
涛声依旧393161 小时前
运维项目:InnoAI SQL 助手
运维·数据库·sql
养海绵宝宝的小蜗1 小时前
LVS(Linux Virtual Server)项目知识点总结
linux·运维·lvs
joopthd2 小时前
打破进口垄断:TDLAS/UV-DOAS/FTIR 全光谱检测国产器件全产业链布局(江苏旭海光电技术梳理)
运维·人工智能·uv·激光气体检测
云泽8082 小时前
Linux基础开发工具(三):Vim高级配置、Swap恢复机制与Sudo权限白名单详解
linux·运维·vim
Urbano3 小时前
服装厂入局自动化开袋设备:市场前景、机型选型与落地实效科普
运维·自动化
七七powerful3 小时前
为离线的bcliunx euler&龙晰 配置 yum源 nginx代理
nginx·yum·bclinux
tju23333 小时前
Gitee Test是什么:从测试资产管理到自动化执行的工程化实践
运维·gitee·自动化
名字还没想好☜3 小时前
Kubernetes Pod 调度实战:nodeSelector、亲和性与 taint/toleration 把 Pod 放到指定节点
运维·云原生·容器·kubernetes·调度