Toc
  1. 正向代理
  2. 反向代理
  3. 负载均衡
  4. 借用阿笠的一张图
  5. Nginx 反向代理配置
Toc
0 results found
Utone
正向代理、反向代理
2018/08/15 Code 代理

github 博客地址:https://shixiaohu2206.github.io/

正向代理

  • 一般情况下,若没有特别说明的代理技术,通常指的是正向代理
  • 正向代理(forward)是一个位于客户端【用户 A】和原始服务器(origin server)【服务器 B】之间的服务器【代理服务器 Z】,为了从原始服务器取得内容,用户 A 向代理服务器 Z 发送一个请求并指定目标(服务器 B),然后代理服务器 Z 向服务器 B 转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。(抄的)
  • 自己的理解:用户想要访问原始服务器的内容,但是不能直接获取到,因为各种墙的缘故,但是中间的代理服务器可以访问的到,所以,用户就携带自己想要访问的地址(A 网址),先去访问代理服务器,代理服务器接受(A 网址),这时代理服务器再去访问(A 网址),获得到内容,返回给代理服务器,代理服务器再返回给用户。完成正向代理的一个流程。(翻墙就是正向代理)

反向代理

  • 网上都在说什么正向代理与反向代理正好相反,这个相反在我看来只是相对的某一个点
  • 反向代理的用户客户端,不需要做任何设置,需要设置的是反向代理服务器。
  • 对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
  • 自己的理解:用户访问(A 网址),A 网址的代理服务器接受到用户的请求,但是真实的资源不在该代理服务器上,该代理服务器携带用户请求去访问原始的服务器,获得到内容,返回给代理服务器,代理服务器再返回给用户。完成反向代理的一个流程。用户不知道(A 网址)其实不是原始服务器,资源不在(A 网址)上

负载均衡

  • 负载均衡是在反向代理的基础上实现的。当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器 B 的时候,让不同的代理服务器 Z(x)去应答不同的用户,然后发送不同用户需要的资源。
  • 当然反向代理服务器像正向代理服务器一样拥有 CACHE 的作用,它可以缓存原始资源服务器 B 的资源,而不是每次都要向原始资源服务器 B 请求数据,特别是一些静态的数据,比如图片和文件,如果这些反向代理服务器能够做到和用户 X 来自同一个网络,那么用户 X 访问反向代理服务器 X,就会得到很高质量的速度。这正是 CDN 技术的核心。

借用阿笠的一张图

Nginx 反向代理配置

#反向代理,需要配置在server外面
upstream github.xiaohuaiqing.com {
        server 119.29.9.63:4000;
        keepalive 2000;
    }


server
    {
        listen 80;
        #listen [::]:80;
        server_name github.xiaohuaiqing.com;
        index index.html index.htm index.php default.html default.htm default.php;
        include other.conf;
        #error_page   404   /404.html;
        include enable-php.conf;

        #反向代理
        location /
        {
            proxy_pass http://github.xiaohuaiqing.com;
            proxy_set_header Host $host:$server_port;
        }

        #单独加个css、js配置
        location ~ .*.(js|css)$
        {
            proxy_pass http://github.xiaohuaiqing.com;
            proxy_set_header Host $host:$server_port;
        }


        location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.
        {
            deny all;
        }

        access_log  /home/wwwlogs/github.xiaohuaiqing.com.log;
    }
打赏
支付宝
微信
本文作者:Utone
版权声明:本文首发于Utone的博客,转载请注明出处!