反向代理是什么?

摘自:维基百科

反向代理Reverse proxy )在电脑网络中是代理服务器的一种。服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器集群的存在 。

前向代理不同,前向代理作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,服务端(如Web服务器)只知道代理的IP地址而不知道客户端的IP地址;而反向代理是作为服务器端(如Web服务器)的代理使用,而不是客户端。客户端借由前向代理可以间接访问很多不同互联网服务器(集群)的资源,而反向代理是供很多客户端都通过它间接访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器。

反向代理在现时的互联网中并不少见,而另一些例子,像是CDN、SNI代理等,是反向代理结合DNS的一类延伸应用。

简单来说:

就是你访问 站A 时,站A 会向 站B 获取相关资源然后返回给你。

介绍就到这里,实战开始!

举例:
要让"babatous.xiaokeli.cn"作为"https://qijieya.cn/About_LTYx64.html"的反向代理,这里用Nginx为例,以下步骤需要root权限。

注意:本文的 "babatous.xiaokeli.cn" 不可照搬!!!
需要你的域名与你的服务器IP绑定,也烦请你在实操时将"babatous.xiaokeli.cn"替换为你的域名。

先创建配置文件

# vim conf.d/MEMZ-64.conf

敲入:

server {
    listen 80;
    listen 443 ssl http2;
    server_name babatous.xiaokeli.cn;
    location = / {
        proxy_pass https://qijieya.cn/About_LTYx64.html;
    }
    proxy_set_header Host www.qijieya.cn;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_http_version 1.1;
}

然后 :wq 就可以运行

# nginx -s reload

效果

如果配置正确的话,就像这样

如图,这里已经成功的使"babatous.xiaokeli.cn"变成"https://qijieya.cn/About_LTYx64.html"了。

更多玩法,等你来发现!!(但要在法律法规允许的范围以内,如果因为本文出现不良后果,与作者无关)

最后修改:2023 年 07 月 18 日
欸嘿,不如点一杯奶茶给我吧