设为首页 收藏本站
查看: 623|回复: 0

[经验分享] nginx varnish

[复制链接]

尚未签到

发表于 2018-11-8 10:40:48 | 显示全部楼层 |阅读模式
  1.前端nginx做调度器及反代服务器,将用户的请求调度至后端的两台varnish,缓存调度算法使用一致性hash算法保证缓存命中率;
  2.两台varnish反向代理用户请求至三个(组)后端主机,分别为存储静态资源(htm,html,css,js),应用程序服务器(可以部署wordpress或Discuz!),图片统一保存至图片服务器;
  3.用户登录后,可以通过wordpress发布新的博文,并且可以上传图片;
  4.如果后端主机全部宕机,varnish可以使用过期缓存响应客户端;
  实验规划:
  director1:    172.16.1.4 nginx+keepalived 主
  director2:    172.16.1.2 nginx+keepalived 备
  varnish1:     172.16.1.5
  varnish2:     172.16.1.6
  static server:  172.16.1.10
  php server:   172.16.1.3
  拓扑图
  blob.png
  一、配置两台nginx调度器主机
  director1的keepalived配置
  11111.PNG
  director2的keepalived配置
  22222.PNG
  两台nginx的配置
  在nginx.conf配置文件中的http段内添加upstream内容,将后端两台varnish服务器加入到该upstream中,同时做一致性hash算法保证缓存命中率。
  后端健康状态检查设置:max_fails=1设定Nginx与服务器通信的尝试失败的次数。在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。在下一个fail_timeout时间段,服务器不会再被尝试。
  33333.PNG
  二、两台varnish主机的配置
  更改varnish的监听端口为80
  [root@varnish1 ~]# vim /etc/varnish/varnish.params
  VARNISH_LISTEN_PORT=80
  varnish配置文件内容
  [root@varnish1 ~]# vim /etc/varnish/default.vcl
  4444.PNG
  5555.PNG
  编译使配置生效
  [root@varnish1 ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082
  200
  Varnish Cache CLI 1.0
  Linux,3.10.0-327.el7.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
  varnish-4.0.5 revision 07eff4c29
  Type 'help' for command list.
  Type 'quit' to close CLI session.
  vcl.list
  200
  available       0 boot
  active          0 myconf3
  varnish> vcl.load conf1 default.vcl
  200
  VCL compiled.
  vcl.use conf1
  200
  VCL 'conf1' now active
  vcl.list
  200
  available       0 boot
  available       0 myconf3
  active          0 conf1
  三、后端wordpress主机配置
  wordpress的主要如下步骤,详细步骤不做赘述
  下载安装配置wordpress
  cp wp-config-sample.php wp-config.php
  数据库配置
  MariaDB [(none)]> create database wordpress;

  MariaDB [(none)]> grant all on wordpress.* to 'wpuser'@'172.16.%.%'>  MariaDB [(none)]> flush privileges;
  在动态主机的/var/www/html/下创建health.php用于动态健康状态检查
  DynamicServer is Health.
  在静态主机的/var/www/html/下创建health.html用于静态健康状态检查
  StaticServer is Health.
  四、测试
  对后端主机健康状态检查
  [root@varnish1 ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082
  200
  Varnish Cache CLI 1.0
  Linux,3.10.0-327.el7.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
  varnish-4.0.5 revision 07eff4c29
  Type 'help' for command list.
  Type 'quit' to close CLI session.
  backend.list
  200
  Backend name              Refs   Admin      Probe
  default(127.0.0.1,,8080)       2      probe      Healthy (no probe)
  dynamic(172.16.1.10,,80)       1      probe      Healthy 3/3
  static(172.16.1.3,,80)        1      probe      Healthy 3/3
  客户端登陆keepalived生成的虚拟ip地址172.16.1.100
  第一次查看静态页面,未缓存X-Cache为miss
  blob.png
  刷新一下,缓存服务器就缓存了X-Cache为HIT
  blob.png
  查看动态页面
  blob.png
  登陆wordpress可以看到刚才正常上传图片的博客
  blob.png


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-632311-1-1.html 上篇帖子: nginx访问量统计 下篇帖子: [Nginx]nginx的upstream模块负载均衡应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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