nginx反向代理

sisophon 2019-10-05 PM 20℃ 0条

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

与正向代理不同,正向代理作为客户端的代理,将从互联网上获取的资源返回给一个或多个的客户端,服务端(如Web服务器)只知道代理的IP地址而不知道客户端的IP地址;

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

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

总结就是:

正向代理代理客户端,反向代理代理服务器。

nginx反向代理:

虚拟机建立两个站:

A站:test.cn
B站:test.cn.com

命令:

curl test.cn
     test.cn
curl test.cn.com
     test.cn.com

A站nginx配置:

server {
    listen       80;
    server_name  test.cn;

    location / {
        proxy_pass http://test.cn.com;
        index  index.php  index.html index.htm;
    }
}

命令:

nginx -t
nginx -s reload
curl test.cn
     test.cn.com
curl test.cn.com
     test.cn.com

可以看出A站域名跳转到B站上了,输出的内容和B站一样。

反向代理的主要作用为:

a.对客户端隐藏服务器(集群)的IP地址
b.安全:作为应用层防火墙,为网站提供对基于Web的攻击行为(例如DoS/DDoS)的防护,更容易排查恶意软件等
c.为后端服务器(集群)统一提供加密和SSL加速(如SSL终端代理)
d.负载均衡,若服务器集群中有负荷较高者,反向代理通过URL重写,根据连线请求从负荷较低者获取与所需相同的资源或备援
e.对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务
f.对一些内容进行压缩,以节约带宽或为网络带宽不佳的网络提供服务
g.减速上传
h.为在私有网络下(如局域网)的服务器集群提供NAT穿透及外网发布服务
i.提供HTTP访问认证
j.突破互联网封锁(不常用,因为反向代理与客户端之间的连线不一定是加密连线,非加密连线仍有遭内容审查进而遭封禁的风险;此外面对针对域名的关键字过滤、DNS缓存污染/投毒攻击乃至深度数据包检测也无能为力)

标签: PHP, NGINX

非特殊说明,本博所有文章均为博主原创。

上一篇 nginx防盗链
下一篇 nginx rewrite模块

评论啦~