• nginx负载均衡实现


    反向代理

    代理这个词应该都有听过,要知道什么是反向代理,首先要知道什么是正向代理。

    正向代理:比如我要访问谷歌,但是在大陆是无法访问的,这时候,有一台服务器A在国外,这个服务器A是可以访问谷歌的。为了访问谷歌,服务器A作为代理,帮我们去访问谷歌,将内容返回给我们,这就是正向代理

    反向代理:我想要访问某个资源,因此去访问服务器A,然后服务器A就将资源给我们了,但是实际上,服务器A从哪里来的这个资源?它也是从其他某个服务器获取来的,但是对于我来说,我根本不知道服务器A去哪里帮我获取的这个资源,在我看来,这个资源就是服务器A本来就有的。这就是反向代理

    反向代理与正向代理的区别:

    1. 正向代理,我们确切知道我们访问的是谁,借助于代理服务器去访问它
    2. 反向代理,我们只知道我们访问的是这个服务器,其实这个服务器还偷偷从其他服务器获取资源,但是我们完全不知道。

    为了更好的理解这两种代理,用一个实际例子来说明:

    正向代理:我知道有一个人叫小A,他手上有一些小电影资源,我想要,但是我不认识小A。正好隔壁老王认识小A,于是我找到老王,说,老王啊,帮我牵牵头,我想找小A买个小电影。于是老王就把小A带过来了,我就买到小电影了。这里的老王就是正向代理

    反向代理:我想买一些小电影,于是找到了隔壁老王,说,老王啊,给我一点小电影。老王答应道:明天给你送过来。第二天,老王果然给我送来了小电影。其实,老王也是从别人那里拿的小电影,再转手给我。我还以为是老王自己的小电影给我了。这时候的老王就是反向代理。

    负载均衡实现

    原理:

    这里写图片描述

    实现:

    在nginx安装目录下的etc下,创建一个配置文件

    vim load_balance.conf

    内容如下:

    user nobody;
    worker_processes 4;
    events{
            worker_connections 1024;
    }
    http{
         upstream myapp1 {        
            server 14.152.71.1;
            server 180.97.161.112;
        }
    
        server {
            listen 80;
    
            location / {
                proxy_pass http://myapp1;
            }
        }
    }

    解析:

    这里写图片描述

    启动nginx的时候,通过-c参数来启用我们刚刚创建的配置文件,那么负载均衡就搞定了。

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/load_balance.conf 

    友情提示:我在做实验的时候,将服务器列表配置为百度,淘宝等ip,结果访问不了,最后用了一个我自己的阿里云服务器,可以正常访问。可能是那些网站做了一些安全措施吧。

  • 相关阅读:
    应用程序加载外部字体文件(使用AddFontResource API函数指定字体)
    动态调整对话框属性(去掉标题栏,去掉边框,修改类似成Border:NONE样式)(调用ModifyStyle和ModifyStyleEx,然后调用SetWindowPos重新显示)
    输出进程相关联的环境变量信息(使用GetEnvironmentStrings取得信息,然后使用StringCchCopyN和StringCchPrintf保证字符串不会越界)
    基于QT的换肤整体解决方案(QSkinStyle)(提供Linux的XP风格)
    .NET代码自动编译发布
    c#写windows服务
    MVC——分页控件
    WCF入门教程(图文)VS2012
    MSDN官方XmlSerializer类导致内存泄漏和性能低
    学SpringMVC收藏
  • 原文地址:https://www.cnblogs.com/flytogalaxy/p/7736142.html
Copyright © 2020-2023  润新知