18.Nginx

作者: 强某某 | 来源:发表于2020-03-09 12:20 被阅读0次

    正向代理和反向代理

    1. 正向代理
      正向代理类似一个跳板机,代理访问外部资源。


      1.png

    例如:Opera浏览器都是把请求发送到自己的代理服务器,然后代理服务器去请求真正的地址并处理数据压缩返回,提高速度;正向代理实际上访问就是外部地址

    1. 反向代理
      实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。代理服务器连接同一个网络(大部分是内网服务没有公网ip)的服务器提供统一入口出口。


      2.png
    3.png
    1. 负载均衡原理
      负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机和某台服务器闲置的情况。那么负载均衡的前提就是要2台以上服务器才能实现。


      4.png
    2. 负载均衡配置


      5.png
    6.png 7.png 8.png

    代理缓存

    9.png

    所谓鲁棒性就是健壮性

    1. 缓存文件放在哪


      10.png
    2. 指定哪些请求被缓存


      11.png
    3. 缓存有效期


      12.png
    4. 指定请求不走缓存


      13.png
    14.png

    Lua扩展Nginx

    1. ngx_lua模块
      Nginx需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者望而生畏。

    ngx_lua模块通过将lua解释器集成进Nginx,可以采用lua脚本实现业务逻辑。
    该模块具备以下特性:

    • 高并发、非阻塞的处理各种请求
    • Lua内建协程,这样就可以很好的将异步回调转换成顺序调用的形式
    • 每个协程都有一个独立的全局环境(变量空间),继承于全局共享的、只读的"common data"

    得益于Lua协程的支持,ngx_lua的处理一万个并发请求时只需要很少的内存。根据测试,ngx_lua处理每个请求只需要2kb的内存,如果使用LuaJIT则会更少。

    1. 协程


      1.png

    Nginx的每个Worker进程都是epoll或kqueue这样的事件模型之上,封装成协程,每个请求都有一个协程进行处理。这正好与Lua内建协程的模型时一致的,所以即使ngx_lua需要执行Lua,相对于C有一定的开销,但依然能保证高并发能力

    1. Nginx进程模型


      2.png
    2. HTTP请求处理


      3.png
    4.png
    1. ngx_lua指令


      5.png
    6.png
    1. OpenResty


      7.png
    2. ngx_lua实例


      8.png

    Nginx实践

    1. Nginx监听端口


      9.png
    10.png
    1. Nginx虚拟主机


      11.png
    12.png
    之前修改了host文件解析yes.163.com到本地的127.0.0.1:80;同时访问yes.163.com其实被location /会通过proxy_pass解析到http://origin.163.com。会去upstream解析真的地址,如果有多个则默认轮询返回对应地址。同时8080在最下面然后了字符串。最终就会返回最后一行return的字符串
    1. Nginx配置location


      13.png

    注意:location是有顺序的,如果一个请求有可能被多个location匹配,实际上这个请求会被第一个location处理。最后,location/{}会处理所有的请求


    14.png
    1. Nginx常规配置


      15.png
    16.png

    Nginx高性能配置

    17.png 18.png 19.png 20.png 21.png
    1. Nginx事件模型


      22.png
    2. Nginx配置实例


      23.png

    相关文章

      网友评论

        本文标题:18.Nginx

        本文链接:https://www.haomeiwen.com/subject/qzaudhtx.html