正向代理&反向代理&frpc&nginx
一直对nginx的反向代理很疑惑,为啥叫反向代理,那正向代理是什么?其实通过学习真的是生活中非常常见的。
正向代理
正向代理是客户端配置的一种代理,用户通过代理服务器访问网上的资源。它可以隐藏客户端的真实IP,提供匿名浏览、内容过滤和访问控制等。来一张智谱清言生成的正向代理图。
网图:
其实说白了公司学校通过wifi上网就是一种正向代理
反向代理
反向代理服务器位于客户端和服务器集群之前,接受客户端的请求,然后根据负载均衡策略讲请求转发到适合的后端服务器。反向代理的主要目的是优化性能、负载均衡、安全防护、内容缓存等。它对外界隐藏了后端服务器的详细信息,只暴露出反向代理自身的IP和端口。反向代理可以用于保护内部服务器免受直接攻击,因为客户端的请求首先到达反向代理,而不是直接到达应用服务器。
来一张智谱清言生成的反向代理图。
再来一张网图
一般反向代理做负载均衡的比较多,或者挂载一些静态资源。
frpc
frpc 是一个高性能的内网穿透工具,主要是把那些位于内网或没有内网IP的服务器暴露到公网,使得外部的客户端可以访问这些内网服务。
我主要是看的这篇博客,写的很详细。
nginx
nginx 是一款高性能的Web 和反向代理服务器。
一般用于下列使用场景:
- 反向代理与负载均衡
Nginx 可以作为反向代理服务器,接受来自客户端的请求,并将其转发给后端的一组服务器,这一过程实现了负载均衡,提高了系统的可用性和响应速度。
支持多种负载均衡算法,如轮询、最少连接数、哈希等,以及第三方模块如Ip_hash,ur_hash等,进一步优化请求分配。 - 静态内容服务
nginx非常擅长处理静态文件,可以直接从本地文件系统高效地提供这些内容,减轻应用服务器的压力。 - Web服务器
虽然nginx主要用于反向代理,但他也可以直接作为Web服务器运行PHP、Python等动态内容,通过与FastCGI等技术结合,支持动态网页服务。 - SSL/TLS终结
- 缓存服务
利用Nginx的缓存功能,可以缓存静态内容或动态内容的响应结果,减少后端服务器的负载,加速内容的交付。 - Web应用防火墙(WAF)
结合第三方模块如ModelSecurity,Nginx可以提供web应用防火墙功能,增强网站的安全性,防止SQL注入,跨站脚本等攻击。 - API网关
Nginx 可以用作API网关,负责路由、负载均衡、认证、限流等任务,为微服务架构提供统一的入口。 - 自定义错误页面
Nginx 允许自定义错误页面,提升用户体验,当用户请求的页面不存在或发生错误时,可以展示友好的提示页面。 - 访问控制与身份验证
支持基于IP\HTTP基本认证,OAuth等机制进行访问控制,增强安全性。
10.日志与监控
Nginx提供详细的访问日志记录,配合日志分析工具可以进行流量统计、性能监控和问题排查。
下一篇来一个nginx 反向代理的实操。