Nginx专题: upstream模块和缓存的简单使用
2016-04-07 21:44
597 查看
Nginx专题: upstream模块和缓存的简单使用
前言:本文接着上篇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模块能够支持缓存功能, 我们这里使用我们这里缓存静态资源
缓存静态资源
我们在web1 server上有一组静态网页通过负载均衡调度器进行反向代理, 我们在没有设置缓存之前先使用ab进行压力测试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专题还没有结束,敬请期待作者: AnyISalIn QQ: 1449472454
感谢: MageEdu
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- nginx代理指定目录
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 访问Nginx发生SSL connection error的一种情况
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户