29人参与 • 2026-04-16 • 缓存
是什么:
有啥用:
让局域网里的电脑能上网。
可以缓存一些数据,省流量。
访问那些被墙了或者限制地区的网站。
隐藏你的真实 ip,对方看到的是代理服务器的 ip。
配置思路:
是什么:
你访问一个网站,其实访问的是代理服务器,它再偷偷去背后真正的服务器拿数据给你。你完全不知道背后是哪台服务器。
有啥用:
负载均衡:把很多人的请求分散到多台服务器上,防止一台服务器累垮。
缓存:把不常变的图片、页面存起来,下次直接给你,更快。
动静分离:把图片、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:控制是否把客户端的请求体和头部转发给后端(默认都转发)。
目标:访问代理服务器(192.164.65.100),实际看到的是后端服务器(192.164.65.101)上的网站内容。
操作:在代理服务器的配置里写一句 proxy_pass http://192.164.65.101; 就行了。
目标:请求 /api 开头的地址,转发给动态服务器(101);请求 /static 开头的地址,转发给静态服务器(103)。
操作:配置两个 location,分别指向不同的后端服务器。
目标:把后端返回的图片、页面存到代理服务器本地,下次有人要,直接给,不用再去麻烦后端。
操作:
http 块里用 proxy_cache_path 定义一个缓存目录和规则(比如放哪儿,多大,存多久)。server 或 location 里用 proxy_cache 开启缓存,用 proxy_cache_valid 设置哪些状态码的响应需要缓存多久。清缓存:直接删缓存文件夹,或者用专门的模块。
问题:用了代理后,后端服务器看到的都是代理服务器的 ip,不知道真正的用户是谁。
一级代理:在代理服务器配置里加一句 proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;,把用户的真实 ip 塞进请求头里传给后端。
多级代理:每一级代理都这么配置,x-forwarded-for 这个头就会把经过的所有 ip 都记录下来,像一个链路清单。
是什么:把请求分给一组服务器(上游服务器组)去处理。
怎么配:
upstream 定义一个服务器组,把多台后端服务器的 ip 列进去。location 里用 proxy_pass http://组名; 把请求交给这个组处理。调度算法(怎么分任务):
weight=3),性能差的少分几个(weight=1)。fair(谁反应快分给谁)、url_hash(同一个网址分给同一台服务器,适合做缓存)。服务器状态:
down:标记为下线。backup:备胎服务器,其他主服务器都挂了才启用。max_fails 和 fail_timeout:连续失败几次就认为服务器挂了,过多久再去检查它有没有恢复。以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论