51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2668|回复: 0
打印 上一主题 下一主题

Nginx专题: upstream模块和缓存的简单使用

[复制链接]

 成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2017-11-15 21:47:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    本文大纲

      前言
      实验拓扑
      实验环境
      Nginx_Upstream模块介绍
      Nginx_Cache介绍
      总结

    前言
    本文接着上篇Nginx专题: 从编译安装到URL重写来介绍Nginx的负载均衡模块使用方法, 本文的实验没有考虑大多数情况, 例如两个web服务器之间的数据同步等, 主要写Nginx如何作为负载均衡器使用并且缓存
    实验拓扑


    实验环境
    主机 IP地址 功用
    lb.anyisalin.com 172.16.1.2 负载均衡并缓存静态资源
    web1.anyisalin.com 172.16.1.3 提供web服务
    web2.anyisalin.com 172.16.1.4 提供web服务
    注意: 本文所有操作都在SELinux和iptables关闭的情况下进行
    Nginx_Upstream模块介绍

    The ngx_http_upstream_module module is used to define groups of servers that can be referenced by the proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, and memcached_pass directives. 摘自官方文档

    简单来说就是通过upstream模块定义一个服务器组, 可以结合其他代理模块从而提供负载均衡的效果。
    upstream使用方法
    我们这里提供一个最简单的upstream定义方法:
    以下两段简单的配置就能实现最简单的负载均衡效果
    upstream servers {
    server 172.16.1.2;
    server 172.16.1.3;
    }
    location / {
    proxy_pass http://servers;
    }
    upstream的常用参数介绍
    upstream name {
    [ip_hash]
    server address [weight=number] [max_fails=number] [fail_timeout=number] [down|up|backup];
    ...
    }
    #ip_hash: 类似于lvs的sh算法,将同一IP的请求定向至同一主机
    #weight: 权重设置
    #max_fails:upstream能够自动对各群组中的服务器进行健康状态检查, 这里代表健康状态检查时最多几次连接失败就删除
    #fail_timeout:多久超时算失败
    #down:将某个主机下线
    #backup:将某个主机设置为备份模式, 只要不是所有主机都宕机, 它就不会上线
    upstream使用示例
    安装nginx的过程这里就不演示了, 有兴趣的可以看我上篇博客
    在nginx主配置文件中添加以下几列
    http段添加
    upstream servers {
    server 172.16.1.3;
    server 172.16.1.4;
    }
    server段添加
    location / {
    proxy_pass http://servers;
    }
    重载nginx
    看图!我们实现了简单的负载均衡效果,为了演示出效果,所以使用了不同的页面
    Nginx_Cache介绍
    大家都知道在现今的网络世界中, Cache is King,缓存能够为我们减轻服务器的负担和加快响应速度, Nginx_proxy模块能够支持缓存功能, 我们这里使用我们这里缓存静态资源。
    缓存静态资源
    proxy_cache_path /cache levels=1:1 keys_zone=mycache:64m; #http段添加
    location /index.html { #Location段配置
    proxy_pass http://172.16.1.3;
    proxy_cache mycache; #使用mycache进行缓存
    proxy_cache_valid 200 1d; #响应码为200的缓存1天
    proxy_cache_valid 500 501 502 503 1m; #响应码为500...的缓存1分钟
    proxy_cache_use_stale error ; #如果请求源主机的时候出问题, 仍然使用缓存
    }
    保存重载
    mkdir /cache #创建缓存存放文件夹
    chown nginx:nginx /cache #修改属主和属组为nginx


    从上面测试可以看出缓存对于静态资源响应的提升是非常明显的
    总结
    因为时间比较紧,所有本文简单的介绍了Nginx_upstream模块和缓存的使用方法,很多配置参数都没有明确的说明,以后应该还有机会和大家详细说明, Nginx专题还没有结束,敬请期待!

    声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。
    扫描并关注51学通信微信公众号,获取更多精彩通信课程分享。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-1-31 14:40 , Processed in 0.065862 second(s), 33 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表