如何实现反向代理?什么是反向代理?反向代理的用途?反向代理与正向代理的区别?Nginx 反向代理优势?下面开始一一解决:
什么是反向代理?
通俗的将,反向代理就是一个网络请求中介。
反向代理(Reverse Proxy)指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
反向代理有哪些用途?
反向代理用途有很多,比如:网络加速、保护真实服务器不被外界攻击等
Nginx如何实现反向代理?
我们以Nginx为例,Nginx就是为反向代理而生的。
upstream remote #这里的remote是可以随便取的名称
{
keepalive 30; #这里指定保持连接,时间为30秒
server www.2.com; #这个www.2.com是目标网站的IP
}
server {
listen 80; #这个是中转机绑定的端口
server_name www.1.com; #这里是中转机绑定的域名
proxy_buffering off; #这两行是指关闭传输缓冲区,降低内存占用,提高响应速度
proxy_request_buffering off;
location /
{
proxy_set_header X-Real-IP $remote_addr; #将用户的真实IP传递给目标服务器
proxy_set_header Host www.2.com; #设置Host为www.2.com,因为目标服务器的网站绑定了域名www.2.com
proxy_set_header Connection Keep-Alive; #设置保持长连接,时间为上面upstream里的keepalive的30秒
proxy_pass http://remote; #这里的remote对应upstream设置的名称
sub_filter "2.com" "1.com"; #这里表示将目标网站的字符串“2.com”全部替换成“1.com”
sub_filter "哈哈" "你好"; #这里表示将目标网站的字符串“哈哈”全部替换成“你好”
sub_filter_once off; #这里表示上面的替换是替换全部匹配成功的内容,而不是只替换一次
}
}