LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

nginx正向代理和TCP和HTTP反向代理

admin
2025年12月27日 18:8 本文热度 568
正向代理一般是内网用户通过代理上网、隐藏真实的客户端 IP,企业中应用一般为开发网或者办公网通过代理服务器访问指定的外部地址,反向代理一般为用代理接收外部请求并转发,隐藏后端真实服务,作为外部进入的统一入口。

一、基本概念

类型
代理方向
作用对象
工作层级
典型用途
正向代理
客户端 → 代理服务器 → 目标服务器
客户端
 使用代理访问外部资源
L7(HTTP)或 L4(TCP)
内网用户通过代理上网、隐藏客户端 IP
反向代理
客户端 → 代理 服务器→ 后端服务器
服务端
 用代理接收外部请求并转发
L7(HTTP/HTTPS)或 L4(TCP/UDP)
负载均衡、SSL 证书管理、 统一网关等、隐藏后端服务





二、Nginx HTTP 正向代理

server {    listen 8080;    resolver 8.8.8.8;  # 必须指定 DNS 解析器    location / {        proxy_pass http://$http_host$request_uri;        proxy_set_header Host $http_host;    }}

❌ 原生不支持 HTTPS(CONNECT 方法),浏览器访问 https://example.com 时会先发 CONNECT example.com:443,开源版 Nginx 无法处理 CONNECT,会返回 400 或 405。

✅ 解决方案:使用第三方模块:ngx_http_proxy_connect_module,编译 Nginx 时加入该模块,即可支持 HTTPS 正向代理。
server {    listen 8080;    resolver 8.8.8.8;    # HTTP 请求    location / {        proxy_pass http://$http_host;        proxy_set_header Host $http_host;    }    # HTTPS CONNECT 隧道    location / {        proxy_connect;        proxy_connect_allow 443;        proxy_connect_connect_timeout 10s;        proxy_connect_read_timeout 10s;        proxy_connect_send_timeout 10s;    }}

三、Nginx TCP 反向代理(四层代理)

使用 stream 模块(Nginx 1.9.0+ 内置),特点:工作在 传输层(L4),不解析应用协议(如 HTTP、MySQL 协议等),可代理任意 TCP(或 UDP)流量。

# 在 nginx.conf 顶层(与 http 同级)stream {    # 代理 MySQL    server {        listen 3306;        proxy_pass 10.0.0.10:3306;        proxy_timeout 1s;    }    # 代理 Redis    server {        listen 6379;        proxy_pass backend_redis:6379;    }    # 也可做负载均衡    upstream ssh_backend {        server 10.0.0.20:22;        server 10.0.0.21:22;    }    server {        listen 2222;        proxy_pass ssh_backend;    }}

适用场景:数据库代理(MySQL、PostgreSQL、Redis)、SSH、RDP、游戏服务器等自定义 TCP 协议

四、 Nginx HTTP 反向代理(七层代理)

这是Nginx 最常用的功能。特点:工作在 应用层(L7),理解 HTTP 协议(可读取 Header、Path、Method 等)支持重写、缓存、限流、鉴权等功能。

http {    upstream app_servers {        server 10.0.0.100:8080;        server 10.0.0.101:8080;    }    server {        listen 80;        server_name example.com;        location /api/ {            proxy_pass http://app_servers;  # 注意结尾斜杠影响路径            proxy_set_header Host $host;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        }        location /static/ {            alias /var/www/static/;        }    }}

五、对比总结表

特性
正向代理
TCP 反向代理
HTTP 反向代理
配置块server { }
 in http
stream { }server { }
 in http
工作层级
L7(HTTP)或 L4(需扩展)
L4(TCP/UDP)
L7(HTTP/HTTPS)
是否解析内容
仅 HTTP 时解析
否(透传)
是(可读 Header/Body)
典型用途
客户端上网代理
数据库/SSH/自定义协议代理
Web 服务负载均衡、API 网关
Nginx 原生支持
HTTP 有限,HTTPS 需模块
是(1.9.0+)
完全支持
能否做负载均衡
否(客户端决定目标)
是(upstream)
是(upstream + 权重/健康检查)
安全性
高(易被滥用)
中(暴露后端端口)
低(可控)

六、如何选择

你想让内网用户通过一个出口访问互联网?→ 正向代理

你想把外部请求转发给内部的 MySQL/Redis/SSH?→ TCP 反向代理(stream)

你部署了多个 Web 应用,需要统一入口、HTTPS、路径路由?→ HTTP 反向代理(http + proxy_pass)


阅读原文:https://mp.weixin.qq.com/s/GE06VNSDNREU9PuMrsUMsA


该文章在 2025/12/27 18:29:07 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved