当前位置: 首页 > news >正文

企业网站架构部署与优化第4章Nginx核心功能

掌握nginx的反向代理

掌握nginx的正向代理

一,正向代理
        正向代理(Forward Proxy)是一种位于客户端和原始服务器之间的代理服务器,其主要作用是将客户端的请求转发给目标服务器,并将响应返回给客户端Nginx 的 正向代理充当客户端的“中间人”,代表用户访问外部资源并隐藏真实 IP。它是企业内网管控、安全审计与加速访问的核心工具。用于场景一般是:内网访问控制:限制员工访问特定网站(如社交媒体)匿名访问:通过代理服务器隐藏用户真实身份。

资源缓存加速:缓存公共资源(如软件包、镜像文件),减少外网带宽消耗。

2.配置正向代理
(1)编辑主配置文件添加正向代理相关配置:

(2)验证正向代理:
Windows中验证,使用火狐浏览器,设置http和https代理即可:

Linux中验证,使用curl命令,并指定代理服务器进行访问测试

通过实时査看nginx的访问日志,可以看到Windows下设置代理IP和端口后,本地电脑访问的所有网页会通过代理服务器进行访问网页,实现了正向代理的功能,并且隐藏了用户自己真实的IP

二.反向代理
        Nginx的七层(应用层)反向代理基于 HTTP/HTTPS 协议,深度解析应用层内容(如 URL、Header、Cookie),将客户端请求精准转发至后端服务器。作为企业级架构的“智能调度器”,它实现了负载均衡、安全隔离与性能优化的核心能力。应用场景一般是:

  • 负载均衡:将流量分发至多台后端服务器,避免单点故障。
  • 动静分离:静态资源(图片、CSS/JS)由 Nginx 直接响应,动态请求(PHP、API)转发全:Apache/Tomcat.
  • SSL 终端:统一处理 HTTPS 加密/解密,降低后端服务器计算压力。
  • 灰度发布:根据请求特征(如IP、Header)将部分流量导向新版本服务。

Nginx的四层(网络层)反向代理基于 TCP/UDP 协议,直接转发原始数据流,不解析应用层内容。它专为高性能、低延迟的传输层场景设计,是数据库、游戏服务器等非 HTTP 服务的理想选择。应用场景一般是:

  • 数据库代理:对外暴露统一端口,内部转发至 MySQL、Redis 集群。
  • 游戏服务器:代理 UDP 协议,实现实时数据包负载均衡,
  • SSH 跳板机:通过端口映射安全访问内网服务器
  • 高可用服务:TCP 服务(如 MQTT)的主备切换与健康检查。

        反向代理,指的是浏览器/客户端并不知道自己要访问具体哪台目标服务器,只知道去访问代理服务器 ,代理服务器再通过反向代理 +负载均衡实现请求分发到应用服务器的一
种代理服务。

        反向代理服务的特点是代理服务器 代理的对象是应用服务器,也就是对于浏览器/客户端 来说应用服务器是隐藏的。

1.配置nginx七层代理
        通过配置nginx七层代理实现转发nginx请求至后端的httpd服务,通过该转发也能实现nginxthttpd的动静分离,动静分离会在后续章节介绍

(1)环境安装

(2)配置nginx七层代理转发

        上述配置中,使用upstream定义后端应用服务器的地址池“backend”,在1ocation块中,使用proxy_pass,转发请求至后端地址池,proxy_set_headerHost $host:将请求中的Host头部设置为客户端请求的主机名,proxy set header X-Real-IP $remote addr:将请求中的 X-Real-IP 头部设置为客户端的真实 IP 地址。

(3)验证转发效果

2.配置nginx四层代理
        SSH协议是基于TCP协议的,配置nginx的四层代理,实现代理ssh请求至后端服务器,用以登录内网服务器场景

(1)配置四层代理

(2)验证四层代理

http://www.xdnf.cn/news/581203.html

相关文章:

  • Axios中POST、PUT、PATCH用法区别
  • 服务器硬盘分类
  • 小白的进阶之路系列之三----人工智能从初步到精通pytorch计算机视觉详解下
  • C# 使用 Source Generation 提升 System.Text.Json 性能
  • 职坐标嵌入式MCU/DSP与RTOS开发精讲
  • Android logcat命令汇总
  • Elasticsearch 写入性能优化有哪些常见手段?
  • c++11特性——lambda对象、包装器
  • Strands Agents:AWS开源Agent框架的技术与应用全景
  • MySQL 索引失效及其解决办法
  • 全面学习c++类与对象(中)(非常重要)(析构构造拷贝函数赋值运算符重载等等)
  • 养生攻略:五步打造健康生活
  • Three.js搭建小米SU7三维汽车实战(1)搭建开发环境
  • 腾讯云媒体AI解码全球视频出海智能密码
  • 替代云数据库的本地方案:MySQL+phpMyAdmin的远程管理与跨网络访问技术
  • Windows下PyCharm2025的运行卡顿的问题
  • 介绍一下 MVCC
  • 2025最新版Visual Studio Code for Mac安装使用指南
  • Spark入门秘籍
  • Docker 疑难杂症解决指南大纲
  • 人民日报社主管媒体深度聚焦珈和科技“遥感+AI”农险精准化突破:首创“四维数据贯通”模式 树行业转型新标杆
  • RNN神经网络
  • tmagic-editor本地实践(2)
  • 当物联网“芯”闯入纳米世界:ESP32-S3驱动的原子力显微镜能走多远?
  • centos8 配置网桥,并禁止kvm默认网桥
  • WPF 常见坑:ContentControl 不绑定 Content 时,命令为何失效?
  • 使用 Selenium 自动化测试:保存网站登录数据的详细指南
  • Labview实现计算CPK参数
  • Appium 的 enableMultiWindows 参数
  • React+Taro 微信小程序做一个页面,背景图需贴手机屏幕最上边覆盖展示