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

打赏链接:

相关推荐
ping某7 小时前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉2 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦2 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj2 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes