前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx专题: upstream模块和缓存的简单使用

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

作者头像
小小科
发布2018-05-04 11:17:29
9120
发布2018-05-04 11:17:29
举报
文章被收录于专栏:北京马哥教育北京马哥教育

前言

本文接着上篇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专题还没有结束,敬请期待!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马哥Linux运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验拓扑
  • 实验环境
    • 注意: 本文所有操作都在SELinux和iptables关闭的情况下进行
    • Nginx_Upstream模块介绍
      • upstream使用方法
        • upstream使用示例
        • Nginx_Cache介绍
          • 缓存静态资源
          • 总结
          相关产品与服务
          负载均衡
          负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档