Products
GG网络技术分享 2025-11-23 14:10 3
嗨,大家好!今天我要和大家聊一聊Nginx正向代理和反向代理的区别,还有它们Neng帮我们解决哪些具体的网站部署难题。别急,我会用简单的话来解释,就像我们小时候学字母一样简单哦!
也许吧... 哎呀,这个问题问得好!正向代理和反向代理就像两种不同的帮手,帮我们处理网站上的事情。

正向代理就像一个小助手,帮我们向远处的服务器要东西。比如说 我们想要kan一个外国的网站,但是我们国家的网络不让直接kan, 我emo了。 这个小助手就会跳出来先向外国网站要东西,然后再把东西给我们。这样我们就Nengkan到外国的网站啦!
反向代理就像一个大哥哥,他在我们的网站和外面的大海之间站岗。外面的访问者想访问我们的网站,dou得先经过这个大哥哥,大哥哥再帮他们把请求传给我们的网站。这样我们的网站就geng加平安啦,这东西...!
哦,这个也hen重要!当我们的网站使用NginxZuo反向代理时有时候我们想知道真正的访问者是谁, 我直接起飞。 对吧?别担心,Nginx帮我们解决这个问题。
当有人想访问我们的网站时他们会先来到Nginx这里。Nginx会记录下他们的信息,然后告诉我们的网站。但是Nginx有时候会把真实的用户IP给掩盖起来。别急,Nginx有个小技巧,它会通过请求头的信息来告诉我们的网站真实的用户IP,好吧...。
比如说 Nginx会在请求头里加上一个叫ZuoX-Forwarded-For的信息,这个信息里就包含了真实的用户IP。我们网站的后台kan到这个信息后就Ke以知道是谁在访问我们的网站啦,大胆一点...!
听起来有点复杂,但是就像我们玩捉迷藏一样简单。外部网络kan不见内部网络的细节,只kan到一个代理服务器在中间帮忙,胡诌。。
X-Forwarded-For:., ., 没法说。 .所以Ru果只有一层代理,则两个值是一样的。
哦, 这个X-Forwarded-For就像一个标签,告诉我们这个请求经过了哪些代理服务器,再说说一个就是真正的用户IP。
归根结底。 正向代理就像是我们的家长,帮我们处理一些事情,比如访问一些不允许直接访问的网站。
反向代理就是那个大哥哥, 保护我们的网站不被坏人攻击, 欧了! 一边还让外面的人kan不到我们网站的具体信息。
哦,反向代理的好处可多了!它不仅Neng保护我们的网站,还Neng提高网站的速度,让网站geng平安,还Neng帮我们隐藏真实的IP地址,与君共勉。。
我们来个图浅显的解释下:
我裂开了。 这个图就像我们的交通地图,Nginx就是那个帮我们指引方向的大哥。
说起来... 此时就需要在nginx配置的location块中添加
server { ... location / { ... proxy_set_header Host $host; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
然后web服务端就Ke以Ke以通过reques 动手。 t.getHeader;来获得真实的用户ip。
server { listen ; server_name localhost; ... location / { proxy_pass http://localhost:; ... } },我可是吃过亏的。
server块Ke以理解为一个虚拟主机, 此时我们Ru果调用的是http://localhost:8182时会将这个请求转发到http://localhost:, 雪糕刺客。 所以呢实际处理这个请求的是http://localhost:
我们换个方式理解,就是当外部网络对内部网络器是不Neng直接访问的,要通过一个代理服务器才Neng进行访问,而外部网络kan到的只是代理服务器, 害... 反馈也是由代理服务器返回的,外部网络对于代理服务器与内部网络直接的具体情况是不可见的。
proxy_set_header X-Forwarded- 嗯,就这么回事儿。 For $proxy_add_x_forwarded_for
注意这里的意思是增加到X-Forwarded-For中, 不是覆盖,而增加后的格式就是之前说的“client1,proxy1....”,默认的时候X-Forwarded-For是空的,Ru果有两个nginx,并且dou配置了上面这个命令,则会在web服务器的request.getHeader获得的是“用户ip,第一个nginx的ip”,分别对应之前的格式,在理。。
在nginx.conf的的中的location中添加如下一些配置,来一波...
当Nginx有X-Forwarded-For设置的话, 每次经过proxy转发dou会有记录,格式就是client1, proxy1,proxy2,以逗号隔开各个地址,而且由于他是非rfc标准,所以默认是没有的, 最后强调一点。 需要强制添加,通过Proxy转达的时候,后端服务器kan到的远程ip是Proxy的ip,也就是说Ru果直接使用request.getHeader是获取不到用户ip的,那我们要如何设置获得用户ip呢?
行吧... 先说说我们要知道什么是X-Forwarded-For?
反向代理在Nginx.conf的简单配置
proxy_add_forwarded_for包含着两个格式, 前面一部分是请求头的X-Forwarded-For,而后面$remote_addr,也就是说是远程用户的ip
hen多场景下不得不承认Nginx是个好东西,它给我们的跨系统间的访问、平安性方面等等,带来了极大的便利,况且它的性Neng也极高,摸鱼。。
Nginx是一个异步框架的 Web服务器, 可用作正向代理,也Ke以用作反向代理,负载平衡器 和 HTTP缓存。Zui近在项目中通过反向代理解决我们一些的问题,今天创新互联就来聊聊它的反向代理。
X-real-ip与X-Forwarded-For的区别
当使用Nginx后 web服务器中request.getRemoteAddr,得到的是Nginx的ip, 未来可期。 而不是真实用户的ip
好了今天我们就聊到这里吧!希望我讲得简单易懂,Ru果你们还有其他问题,就留言告诉我哦!
网页名称:Web服务器Nginx正向代理和反向代理的区别
躺平。 浏览地址:https:///news/.html
Demand feedback