Nginx正向代理与反向代理详解

 更新时间:2026年02月07日 09:31:49   作者:喝醉酒的小白  
Nginx正向代理帮助客户端访问外部资源,常用于隐藏IP;反向代理将外部请求转发至内网服务器,用于负载均衡、统一入口及安全隔离,两者核心区别在于代理对象(客户端vs服务端)和目的(访问外部vs服务优化)

当然可以,以下是对 Nginx 正向代理与反向代理 的详细解析,包括概念、工作机制、配置示例、使用场景和区别等内容,适用于开发、运维及网络基础学习场景。

Nginx正向代理与反向代理

一、什么是代理(Proxy)?

代理是一种网络服务,客户端通过代理服务器间接访问目标资源。根据请求的方向不同,代理分为:

类型说明
正向代理代理客户端访问外部资源(“我替你去”)
反向代理代理外部用户访问内部服务器(“你来找我,我替你找它”)

二、正向代理(Forward Proxy)

定义:

客户端并不直接访问目标服务器,而是把请求交给代理服务器,由代理服务器转发请求并返回响应。

工作流程:

[客户端] → [Nginx正向代理] → [目标服务器]
                             ↓
                    [响应返回到客户端]

使用场景:

  • 访问被屏 蔽的网站(如科学上网)
  • 客户端隐藏真实 IP
  • 缓存加速访问外部内容

示例配置(Nginx):

# nginx.conf
events {}

http {
    server {
        listen 8888;

        resolver 8.8.8.8;

        location / {
            proxy_pass $scheme://$http_host$request_uri;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

使用方式(客户端设置代理):

浏览器或 curl 设置代理为:http://<nginx-ip>:8888

三、反向代理(Reverse Proxy)

定义:

客户端访问代理服务器,代理根据配置将请求转发到后端真实服务器(Upstream),客户端无感知。

工作流程:

[客户端] → [Nginx反向代理] → [后端服务器]
                            ↓
                   [响应返回到客户端]

使用场景:

  • 实现负载均衡
  • 实现 HTTPS 网关 / TLS 卸载
  • 内网服务暴露给公网
  • 提供统一入口,隐藏真实服务器结构

示例配置(Nginx):

http {
    upstream backend {
        server 192.168.1.101:8080;
        server 192.168.1.102:8080;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

四、正向 vs 反向代理对比总结

比较项正向代理(Forward Proxy)反向代理(Reverse Proxy)
代理的对象客户端服务器(后端)
请求目标客户端指定的外部网站内部真实服务
常用目的帮助客户端访问目标保护服务器、统一入口
客户端感知明确知道自己使用了代理无需知道后端结构
配置位置客户端需配置代理服务端配置即可
应用场景匿名访问、绕过限制负载均衡、内网服务暴露、缓存

五、反向代理的扩展应用

功能说明
负载均衡多个后端服务器自动轮询分发流量
HTTPS 网关客户端连接为 HTTPS,后端可为 HTTP
安全隔离仅暴露代理,隐藏真实服务 IP
静态 + 动态分离静态资源由 Nginx 提供,动态由后端处理
缓存优化可配置缓存减少后端负载(如 CDN)

六、附加示例:基于域名转发

server {
    listen 80;
    server_name www.example.com;

    location / {
        proxy_pass http://192.168.1.100:8080;
    }
}

server {
    listen 80;
    server_name api.example.com;

    location / {
        proxy_pass http://192.168.1.200:8081;
    }
}

总结一句话

  • 正向代理 是“我找别人帮我出去”,常用于“访问外部”;
  • 反向代理 是“别人来找我,我帮他找内部”,常用于“服务入口统一、隐藏后端”。

如果你还想了解:

  • 正反向代理中的缓存策略
  • 配合 HTTPS 的配置方式
  • 与防火墙 / DNS / CDN 的协同机制
    我也可以继续补充。是否需要一张图帮助你更直观理解两者结构?

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx反向代理出现静态文件404异常处理

    Nginx反向代理出现静态文件404异常处理

    本文主要介绍了Nginx反向代理出现静态文件404异常处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • nginx配置多域名共用服务器80端口

    nginx配置多域名共用服务器80端口

    本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直接访问到不同“网站”,感兴趣的可以了解一下
    2025-03-03
  • nginx 反向代理负载均衡策略配置SSL访问匹配规则优先级

    nginx 反向代理负载均衡策略配置SSL访问匹配规则优先级

    本文主要包含1.Nginx配置文件详解2.Nginx实现负载均衡3.Nginx前端项目部署4.Nginx配置SSL访问5.nginx匹配规则说明以及匹配的优先级的内容详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • nginx设置资源请求目录的方式详解

    nginx设置资源请求目录的方式详解

    最近有一个需求.就是url指定路径下访问服务器的静态资源,这篇文章主要给大家介绍了关于nginx设置资源请求目录的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Nginx 代理转发阿里云OSS上传的实现代码

    Nginx 代理转发阿里云OSS上传的实现代码

    这篇文章主要介绍了Nginx 代理转发阿里云OSS上传的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Nginx服务器中处理AJAX跨域请求的配置方法讲解

    Nginx服务器中处理AJAX跨域请求的配置方法讲解

    这篇文章主要介绍了Nginx服务器中处理AJAX跨域请求的配置方法讲解,包括Nginx作Apache的反向代理时的配置方法,需要的朋友可以参考下
    2016-01-01
  • nginx 自定义 404、50x 错误页面的实现

    nginx 自定义 404、50x 错误页面的实现

    本文主要介绍了nginx 自定义 404、50x 错误页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • 解决nginx+uwsgi部署Django的所有问题(小结)

    解决nginx+uwsgi部署Django的所有问题(小结)

    本篇文章主要介绍了解决nginx+uwsgi部署Django的所有问题(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • nginx环境下配置ssl加密(单双向认证、部分https)

    nginx环境下配置ssl加密(单双向认证、部分https)

    这篇文章主要介绍了nginx环境下配置ssl加密(单双向认证、部分https),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • nginx 搭建http-flv(rtmp)流媒体的方法步骤

    nginx 搭建http-flv(rtmp)流媒体的方法步骤

    本文主要介绍了nginx 搭建http-flv(rtmp)流媒体的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2023-06-06

最新评论