Nginx反向代理与缓存用法及说明

 更新时间:2026年04月15日 16:27:32   作者:东北甜妹  
文章主要介绍了正向代理和反向代理的概念、用途及其配置方法,反向代理包括负载均衡、缓存、动静分离等功能,并详细介绍了配置思路和具体配置方法,最后,文章提供了配置实战示例,帮助读者更好地理解和应用这些知识

一、正向代理和反向代理

1.1 正向代理(代理的是客户端)

是什么:

  • 就像一个中间人,帮你(客户端)去访问你想去的网站。

有啥用:

  • 让局域网里的电脑能上网。

  • 可以缓存一些数据,省流量。

  • 访问那些被墙了或者限制地区的网站。

  • 隐藏你的真实 IP,对方看到的是代理服务器的 IP。

配置思路:

  • 客户端访问代理服务器,代理服务器再去请求目标网站。

1.2 反向代理(代理的是服务器)

是什么:

  • 你访问一个网站,其实访问的是代理服务器,它再偷偷去背后真正的服务器拿数据给你。你完全不知道背后是哪台服务器。

有啥用:

  • 负载均衡:把很多人的请求分散到多台服务器上,防止一台服务器累垮。

  • 缓存:把不常变的图片、页面存起来,下次直接给你,更快。

  • 动静分离:把图片、CSS 等静态文件和需要计算的动态页面(比如 PHP)分开处理。

多站点共用端口:

  • 一台服务器可以代理多个不同的网站。

常用模块:

  • proxy_module(转发HTTP请求)、upstream_module(定义服务器组)、stream_proxy_module(转发TCP请求)等。

二、反向代理的核心配置

proxy_pass:最重要的一句,告诉 Nginx 把请求转发给谁。

  • 如果地址后面没有斜杠(/),会把客户端请求的路径拼在后面。

  • 如果地址后面有斜杠(/),会替换掉客户端请求的路径。

  • 如果 location 用了正则表达式匹配,proxy_pass 后面不能加斜杠。

其他小功能:

  • proxy_hide_header:不让后端服务器的某些头部信息(比如服务器版本)透传给客户端。

  • proxy_pass_header:强制让后端服务器的某些头部信息透传给客户端。

  • proxy_pass_request_body/headers:控制是否把客户端的请求体和头部转发给后端(默认都转发)。

三、配置实战(举例子)

3.1 最简单的反向代理

  • 目标:访问代理服务器(192.164.65.100),实际看到的是后端服务器(192.164.65.101)上的网站内容。

  • 操作:在代理服务器的配置里写一句 proxy_pass http://192.164.65.101; 就行了。

3.2 动静分离

  • 目标:请求 /api 开头的地址,转发给动态服务器(101);请求 /static 开头的地址,转发给静态服务器(103)。

  • 操作:配置两个 location,分别指向不同的后端服务器。

3.3 缓存功能

  • 目标:把后端返回的图片、页面存到代理服务器本地,下次有人要,直接给,不用再去麻烦后端。

操作:

  • 先在 http 块里用 proxy_cache_path 定义一个缓存目录和规则(比如放哪儿,多大,存多久)。
  • 再在 server 或 location 里用 proxy_cache 开启缓存,用 proxy_cache_valid 设置哪些状态码的响应需要缓存多久。
  • 清缓存:直接删缓存文件夹,或者用专门的模块。

3.4 客户端 IP 透传(让后端知道谁在访问)

问题:用了代理后,后端服务器看到的都是代理服务器的 IP,不知道真正的用户是谁。

  • 一级代理:在代理服务器配置里加一句 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;,把用户的真实 IP 塞进请求头里传给后端。

  • 多级代理:每一级代理都这么配置,X-Forwarded-For 这个头就会把经过的所有 IP 都记录下来,像一个链路清单。

3.5 & 3.6 负载均衡

  • 是什么:把请求分给一组服务器(上游服务器组)去处理。

怎么配:

  • 先用 upstream 定义一个服务器组,把多台后端服务器的 IP 列进去。
  • 然后在 location 里用 proxy_pass http://组名; 把请求交给这个组处理。

调度算法(怎么分任务):

  • 轮询:一人一个,轮流来。
  • 加权轮询:性能好的多分几个任务(weight=3),性能差的少分几个(weight=1)。
  • ip_hash:同一个 IP 的人,每次都分给同一台服务器(解决登录状态丢失问题)。
  • least_conn:谁当前处理的连接少,就分给谁。
  • 第三方算法:fair(谁反应快分给谁)、url_hash(同一个网址分给同一台服务器,适合做缓存)。

服务器状态:

  • down:标记为下线。
  • backup:备胎服务器,其他主服务器都挂了才启用。
  • max_fails 和 fail_timeout:连续失败几次就认为服务器挂了,过多久再去检查它有没有恢复。

总结

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

相关文章

  • Nginx流量拷贝ngx_http_mirror_module模块使用方法详解

    Nginx流量拷贝ngx_http_mirror_module模块使用方法详解

    这篇文章主要介绍了Nginx流量拷贝,Nginx专门提供了ngx_http_mirror_module模块,用来实现流量拷贝。将生产环境的流量拷贝到预上线环境或测试环境
    2022-04-04
  • nginx配置文件使用环境变量的操作方法

    nginx配置文件使用环境变量的操作方法

    Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务,相较于Apache、lighttpd具有占有内存少,稳定性高等优势,所以深受用户喜爱,今天小编给大家分享nginx配置文件使用环境变量的操作方法,感兴趣的朋友一起看看吧
    2021-06-06
  • 通过Nginx的proxy_set_header设置请求头无效的解决

    通过Nginx的proxy_set_header设置请求头无效的解决

    这篇文章主要介绍了通过Nginx的proxy_set_header设置请求头无效的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Nginx反向代理在Web应用中的实战分享

    Nginx反向代理在Web应用中的实战分享

    本文将介绍Nginx反向代理的基本原理和配置,以及如何利用Nginx实现高可用性和故障转移,最后,我们将探讨如何监控Nginx反向代理的性能并进行日志分析,需要的朋友可以参考下
    2024-08-08
  • 聊聊配置 Nginx 访问与错误日志的问题

    聊聊配置 Nginx 访问与错误日志的问题

    这篇文章主要介绍了配置 Nginx 访问与错误日志,Nginx是一个开放源代码的高性能HTTP和反向代理服务器,负责处理Internet上某些最大站点的负载,对Nginx 错误日志相关知识感兴趣的朋友一起看看吧
    2022-05-05
  • nginx使用nginx-rtmp-module模块实现直播间功能

    nginx使用nginx-rtmp-module模块实现直播间功能

    做的过程出现很多问题,环境其实就需要nginx就可以,然后就是在播放的问题,m3u8的格式,mac直接访问就支持,苹果系统原生H5支持m3u8,还有就是手机直接访问也支持!但是其他其他系统PC端不支持,尝试了好多都不行,最后终于找到了一个支持m3u8格式H5播放
    2017-10-10
  • Nginx配置origin限制跨域请求的详细过程

    Nginx配置origin限制跨域请求的详细过程

    这篇文章主要介绍了Nginx配置origin限制跨域请求的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Nginx代理Partainer的具体使用

    Nginx代理Partainer的具体使用

    本文主要介绍了Nginx代理Partainer的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Nginx gateway集群和动态网关的实现思路

    Nginx gateway集群和动态网关的实现思路

    这篇文章主要介绍了Nginx gateway集群和动态网关,动态网关即任何配置都实现不用重启网关服务器都可以及时刷新,对Nginx gateway集群相关知识感兴趣的朋友一起看看吧
    2022-10-10
  • nginx部署多前端项目的几种方法

    nginx部署多前端项目的几种方法

    最近一台服务器要配置多个前端项目,个人总结了3种方法来实现在一台服务器上使用nginx部署多个前端项目的方法。需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05

最新评论