使用nginx负载均衡lucene

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: server a是之前退役的,现存放着一些小些php站点和lucene 搜索,server acpu: Xeon(TM) CPU 2.80GHz (双核*2)mem:1G*2disk:scsi 74G *2 (raid 0)os:as4app:nginx+php+fcgi+xcache+mysql+tomcat+postfixserver b为刚退役,没有站点。

server a是之前退役的,现存放着一些小些php站点和lucene 搜索,
server a
cpu: Xeon(TM) CPU 2.80GHz (双核*2)
mem:1G*2
disk:scsi 74G *2 (raid 0)
os:as4
app:nginx+php+fcgi+xcache+mysql+tomcat+postfix

server b为刚退役,没有站点。
server b
cpu: Xeon(TM) CPU 2.80GHz (双核*2)
mem:1G*2
disk: sata 80G *1 (7200)
os:as4
app:nginx+tomcat

—————————————
server a 的搜索每天有几十万PV,平均load 5,更新索引达30,高峰时tomcat会挂掉。
产品结构:nginx代理tomcat,jsp提供搜索结果,jsp+mysql记录搜索关键字,crontab定时生成索引。

方案一:server a 提供生成索引和mysql服务,server b 提供纯web搜索服务,用rsync同步索引文件
方案二:server a 提供生成索引和mysql服务,server b 和server a使用负载均衡一起提供需web搜索服务,用rsync同步索引文件。

一。先设置两台服务器时间是同步的。

二。设置rsync时不需要登录。
用server b 去拉server a的索引
使用crontab+ssh每天自动完全备份mysql数据

三。写更新的bash和设置crontab
rsync在第一次是全部同步,以后就是只更新有异动的文件。
目前索引为1G左右,
cache使用三级目录分布小文件,占4G

在server b上
vi rsync_index.sh
#!/bin/bash
#获取lucene索引
/usr/bin/rsync -avlR –delete -e /usr/bin/ssh rsync@221.0.0.1:/lucene/index / >> /opt/shell/rsync_index.log

vi rsync_cache.sh
#!/bin/bash
#获取职位的cache和关键词
/usr/bin/rsync -avlR –delete -e /usr/bin/sshrsync@221.0.0.1:/lucene/keyword/ >> /opt/shell/rsync_keyword.log
/usr/bin/rsync -avlR –delete -e /usr/bin/sshrsync@221.0.0.1:/lucene/cache/ >> /opt/shell/rsync_cache.log

crontab每小时更新一次。
50 * * * * /bin/sh /opt/shell/rsync_cache.sh > /dev/null 2>&1
52 * * * * /bin/sh /opt/shell/rsync_index.sh > /dev/null 2>&1

四。设置nginx
设置nginx的配置文件,使用方案一

      location / {
           proxy_passhttp://127.0.0.1:8080;
       location ~* ^.+/.(jpg|jpeg|gif|png|css|js)$ {
    root /opt/tomcat/webapps/search;
    access_log   off;
    expires 3d;
    break;
       }
      }           

重启nginx,将域名指向server b.
server b平均load 为5,当rsync更新时load 会达到20,还是不可靠,使用方案二。

     upstream mysvr {
 #ip_hash; (据说可以以C类IP将用户固定在某台server,开启后并发大降不能肯定是否有bug)
 server 127.0.0.1:8080;
 server 221.0.0.1:8080;
     }

server {
      …..

      location / {
           #proxy_passhttp://127.0.0.1:8080;
    proxy_passhttp://mysvr;
       location ~* ^.+/.(jpg|jpeg|gif|png|css|js)$ {
    root /opt/tomcat/webapps/search;
    access_log   off;
    expires 3d;
    break;
       }
      }           

      …….

}

重启nginx,将域名指向server b.
server b 和server 平均load 为1~2,更新会到5,还可以接受。

<SCRIPT type=text/javascript><!-- google_ad_client = "pub-4117525570087365"; /* 468x15, 创建于 08-10-27 */ google_ad_slot = "2143600273"; google_ad_width = 468; google_ad_height = 15; //--> </SCRIPT> <SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </SCRIPT> <SCRIPT src="http://googleads.g.doubleclick.net/pagead/test_domain.js"></SCRIPT> <SCRIPT> window.google_render_ad(); </SCRIPT>
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
3月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
89 2
|
18天前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
36 3
|
18天前
|
负载均衡 算法 应用服务中间件
在Linux中,nginx反向代理和负载均衡实现原理是什么?
在Linux中,nginx反向代理和负载均衡实现原理是什么?
|
21天前
|
负载均衡 应用服务中间件 nginx
Nginx怎么去做负载均衡?
Nginx的负载均衡器配置就完成了,而且由于Nginx的配置文件结构清晰而且简洁,调整和维护也相对方便。通过上述步骤,你可以将Nginx设置为一款强大的负载均衡器,提升服务器集群的处理能力及高可用性。
31 4
|
29天前
|
域名解析 负载均衡 网络协议
双重神器合璧,流量洪流中的稳如磐石:揭秘Bind+Nginx负载均衡的超级力量!
【8月更文挑战第9天】在现代网站架构中,负载均衡至关重要,它通过分散客户端请求至多台服务器,确保了系统的高可用性和稳定性。本文介绍如何结合Bind与Nginx实现高效负载均衡。Bind作为DNS服务器,可为单一域名解析出多个IP地址;Nginx作为高性能HTTP服务器,则在这些IP对应的服务器间智能分配流量。通过配置Bind的A记录与Nginx的`upstream`和`proxy_pass`指令,我们能够构建一个既稳定又易扩展的负载均衡系统,显著提升用户体验与系统可靠性。
41 11
|
26天前
|
负载均衡 监控 算法
Nginx:负载均衡小专题(二)
Nginx:负载均衡小专题(二)
35 2
|
26天前
|
负载均衡 监控 网络协议
Nginx:负载均衡小专题(三)
Nginx:负载均衡小专题(三)
66 1
|
26天前
|
负载均衡 监控 算法
Nginx:负载均衡小专题(一)
Nginx:负载均衡小专题(一)
60 1
|
15天前
|
负载均衡 应用服务中间件 Linux
在Linux中,Nginx如何实现负载均衡分发策略?
在Linux中,Nginx如何实现负载均衡分发策略?
|
2月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
29 1
下一篇
DDNS