nginx+tomcat+memcached集群安装配置操作指导书.docx
- 文档编号:530920
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:36
- 大小:384.94KB
nginx+tomcat+memcached集群安装配置操作指导书.docx
《nginx+tomcat+memcached集群安装配置操作指导书.docx》由会员分享,可在线阅读,更多相关《nginx+tomcat+memcached集群安装配置操作指导书.docx(36页珍藏版)》请在冰点文库上搜索。
nginx+tomcat+memcached集群安装配置操作指导书
Nginx+Tomcat+Memcached+Mysql
集群安装配置操作指导书
拟制:
Preparedby
杨机智
日期:
Date
2015-1-14
审核:
Reviewedby
日期:
Date
审核:
Reviewedby
日期:
Date
批准:
Grantedby
日期:
Date
修订记录Revisionrecord
日期
Date
修订版本Revisionversion
修改描述
changeDescription
作者
Author
2015-1-14
初稿完成
杨机智
目录TableofContents
1集群组网7
2Nginx安装及配置7
Nginx介绍7
Nginx安装8
Nginx启动、关闭、重启9
3Tomcat安装10
Tomcat安装步骤10
4Memcached安装10
Memcached介绍10
Linux下Memcached安装步骤10
Memcached启动和关闭11
Memcached状态查看12
5集群配置12
Nginx负载均衡配置12
Tomcat的Session共享配置13
查看集群状态14
6常见问题解决方法15
执行patch命令时提示patch:
commandnotfound15
现象描述15
原因分析15
处理方法15
出现错误13:
Permissiondenied)whileconnectingtoupstream,client…16
现象描述16
原因分析16
处理方法16
表目录ListofTables
表1XX表Table1XX3
图目录ListofFigures
图1XX图Figure1XX3
Nginx+Tomcat+Memcached+Mysql集群安装配置操作指导书
关键词Keywords:
Nginx,Tomcat,Memcached,mysql,集群
摘要Abstract:
本文介绍了Nginx+Tomcat+Memcached集+Mysql集群的安装与配置
缩略语清单Listofabbreviations:
Abbreviations缩略语
Fullspelling英文全名
Chineseexplanation中文解释
1
集群组网
集群组网说明:
Nginx部署在前端,作为集群的负载均衡器,配置双网卡,分别连接内外网。
Tomcat服务器集群部署在内网,不与外网直接连接,以避免遭受外部攻击。
Tomcat服务器的session通过Memcached服务器进行共享,保证某台服务器挂掉以后,能够正常的进行故障转移。
2Nginx安装
2.1Nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。
由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:
Рамблер)使用。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:
新浪、网易、腾讯等。
Nginx作为负载均衡服务器:
Nginx既可以在内部直接支持Rails和PHP程序对外进行服务,也可以支持作为HTTP代理服务器对外进行服务。
Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好很多。
2.2Nginx安装
由于Nginx本身的健康检测不是太好用,如果后端服务器宕掉的话nginx是不能把这台realserver踢出upstream的,所以还会有请求转发到后端的这台realserver上面去,虽然nginx可以在localtion中启用proxy_next_upstream来解决服务故障转移,但这种方式每次还是会先把请求转发给这台服务器的,等待超时或者其他错误再转发给别的服务器,这样就浪费了一次转发,同时响应的比较慢。
目前比较流行的做法是借助淘宝技术团队开发的nginx模快补丁nginx_upstream_check_module来检测后方Realserver的健康状态,该补丁可以动态维护后端RealServer列表。
加补丁的Nginx在CentOs下的安装步骤:
首先去这里下载nginx健康检测模块yaoweibin/nginx_upstream_check_module
比如下的是
下面是nginx打上健康检测模块补丁的安装步骤:
#wgetdownload/
#tar-xzvftar–xzvf
#cd
#patch-p1
注:
假设安装包都放在/software目录下,补丁需要选择与nginx版本对应的版本,比如以上版本的nginx,补丁为
#./configure--add-module=/software/nginx_
#make
#makeinstall
注:
提示patch:
commandnotfound解决方法
ubuntu系统就sudoapt-getinstallpatch
centos/redhat就 yuminstallpatch
2.3Nginx启动、关闭、重启
采用源码安装方式,安装成功后Nginx安装目录在/usr/local/nginx目录下
启动命令:
#cd/usr/local/nginx/sbin
#./nginx
启动后通过添加–s参数来进行关闭、重启等的控制
语法:
nginx-ssignal
stop —fastshutdown
quit —gracefulshutdown
reload —reloadingtheconfigurationfile
reopen —reopeningthelogfiles
注:
如果修改了nginx的配置文件,请用nginx–sreload,这样服务不会中断,不会影响到客户端访问
关闭命令:
#cd/usr/local/nginx/sbin
#./nginx–sstop
重启命令:
#cd/usr/local/nginx/sbin
#./nginx–sreload
3JDK安装
步骤1:
到oracle官网下载JDK安装包
步骤2:
是一个自解压文件,不过解压后的文件是jdk-6u11-linux-i586-rpm包
#chmod+x
#./
步骤3:
执行rpm命令进行安装
#rpm-ivh
4Tomcat安装
Tomcat安装比较简单,到下载相应的版本的包,然后解压压缩包即可。
CentOs下的安装步骤如下:
#tar–zxvfconfigure –prefix=/usr/local
#make
#makeinstall
步骤3:
安装Memcached
#tar-zxvf ./configure --with-libevent=/usr/local
#make
#makeinstall
注:
安装完成后会把memcached放到/usr/local/memcached
步骤4:
检查安装是否成功
#ls-al/usr/local/memcach*
成功的话,会输出一些相关信息
步骤5:
设置防火墙
vi /etc/sysconfig/iptables
把下面这行加进去
-A RH-Firewall-l-INPUT -p tcp -m tcp --dport 11211 -j ACCEPT
注:
将memcached加入到防火墙允许访问规则中
service iptables restart
4.1Memcached启动和关闭
启动:
./memcached-d-m128-p11211-uroot
关闭:
ps-ef|grepmemcached.
Connectedtolocalhost.
Escapecharacteris'^]'.
stats
STATpid3512
STATuptime241980
STATtime91
STATversionlibeventpointer_size32
STATrusage_user
.......
连接到memcached之后,输入stats再按回车,即可获得包括资源利用率在内的各种信息;此外输入“statsslabs”或“statsitems”还可以获得关于缓存记录的信息。
结束程序输入“quit”
注:
centos默认没有telnet,需要按如下方法自己安装
#yuminstalltelnet
#yuminstalltelnet-server
#chkconfigtelneton
#servicexinetdrestart
5集群配置
5.1Nginx负载均衡及健康检测配置
按照如下内容修改/usr/local/nginx/conf/文件
http{
upstreamcluster{
#simpleround-robin
#RealServer的IP及端口
server:
80;
server:
80;
#健康检测的策略
checkinterval=5000rise=1fall=3timeout=4000;
#checkinterval=3000rise=2fall=5timeout=1000type=ssl_hello;
#checkinterval=3000rise=2fall=5timeout=1000type=http;
#check_http_send"HEAD/HTTP/\r\n\r\n";
#check_http_expect_alivehttp_2xxhttp_3xx;
}
server{
listen80;
location/{
proxy_pass;
}
#设置查看集群状态的URL
location/status{
check_status;
access_logoff;
allow;###允许某台机器可以查看状态
denyall;
}
}
}
5.2Tomcat的Session共享配置
使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起来很简单。
但这个方案的效率比较低,在大并发下表现并不好。
比较好的方式是利用memcached把多个tomcat的session集中管理,前端再利用nginx负载均衡和动静态资源分离,在兼顾系统水平扩展的同时又能保证较高的性能。
Tomcat的session复制同步使用第三方的memcache-session-manager,配置步骤如下:
步骤1:
到Maven库搜索并下载如下jar包,然后放至Tomcat的\lib目录下:
注:
tomcat6和7使用不同msm支持包:
和,只可选一,否则启动报错
步骤2:
修改\conf\文件,添加如下红色部分
memcachedNodes="n1: : 11211" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass=""/> ………………… 5.3查看集群状态 通过访问,即可查看集群各节点的状态。 5.4集群启动关闭 集群启动请按照如下顺序进行: a.启动Memcached b.启动Tomcat c.启动Nginx 集群关闭请按照如下顺序进行: a.关闭Nginx b.关闭Tomcat c.关闭Memcached 增加服务器节点: a.安装部署好Tomcat b.启动Tomcat c.增加该服务器 d.使用./nginx–sreload重新加载配置文件 6Mysq集群配置 6.1部署说明 Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,目前只支持InnoDB引擎。 主要功能: 同步复制 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除 新节点加入数据自动复制 真正的并行复制,行级 用户可以直接连接集群,使用感受上与MySQL完全一致 优势: 因为是多主,所以不存在Slavelag(延迟) 不存在丢失交易的情况 同时具有读和写的扩展能力 更小的客户端延迟 技术: Galera集群的复制功能基于Galeralibrary实现,为了让MySQL与Galeralibrary通讯,特别针对MySQL开发了wsrepAPI。 Xtrabackup进行InnoDB数据备份,支持在线热备份(备份时不影响数据读写)。 并有效的解决死锁,非阻塞。 方案总览: 三台mysql服务器,分别部署带wsrep插件的mysql。 分别安装Xtrabackup、Galera等工具 Mysql名称 IP地址 Node1 Node2 Node3 6.2安装前准备 6.2.1卸载自带mysql 1.步骤一 #yumremovemysqlmysql-servermysql-libscompat-mysql51 #rm-rf/var/lib/mysql #rm/etc/ 2.步骤二 注意: 查看是否还有mysql软件,有的话继续删除: rpm-qa|grepmysql 6.2.2安装mysql集群(官网MariaDBGaleraCluster方案) 6.2.3添加mariaDByum资源 步骤1、进入yum资源目录 #cd/etc/步骤2、编辑repo文件 #vi 添加mysql资源库 模板如下: [mariadb] name=MariaDB baseurl===1 注baseurl解释: version: mariadb版本号,例如,. package: 发布版本.例如,centos6-x86和centos6-amd64 参考示例: [mariadb] name=MariaDB baseurl===1 6.2.4安装galera #yuminstallgalera 6.2.5安装 #yuminstallMariaDB-clientMariaDB-Galera-server 6.2.6编辑 #vi/etc/ *Galera-relatedsettings # [galera] #Mandatorysettings wsrep_provider=/usr/lib64/galera/ wsrep_provider_options="=300M;=1G" wsrep_cluster_name="my_wsrep_cluster" #wsrep_cluster_address=",," wsrep_cluster_address="," binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 wsrep_node_name="node2" wsrep_node_address="" wsrep_sst_method=rsync wsrep_sst_auth=cluster: media #bind-address= # #Optionalsetting #wsrep_slave_threads=1 #innodb_flush_log_at_trx_commit=0 #thisisonlyforembeddedserver 按照如上配置,编辑后保存。 注意: 配置项解释 属性名 含义 server-id MySQL服务器的ID,必须是唯一的 wsrep_node_name wsrep节点的ID,必须是唯一的 wsrep_provider 包地址 wsrep_cluster_address 集群中的其他节点地址,可以使用主机名或IP wsrep_cluster_address=,mysqlnode3 wsrep_node_address 本机节点地址,可以使用主机名或IP wsrep_sst_donor 一个逗号分割的节点串作为状态转移源,比如wsrep_sst_donor=node5,node3,如果node5可用,用node5,不可用用node3,如果node3不可用,最后的逗号表明让提供商自己选择一个最优的 wsrep_sst_method 同步sst方法。 目前总计有四种方法 mysqldump: 慢(除了小数据集),但是测试充分。 rsync: 大型数据集上快。 rsync_wan: 与rsync相同,网络用量小。 xtrabackup: 非常快,几乎非阻塞方法,基于xtrabackupPercona的工具。 wsrep_sst_auth xtrabackup使用的用户名密码,本例中使用wsrep_sst_auth=cluster: media wsrep_cluster_name galera集群的名字,必须是统一的 6.2.7启动mysql 步骤1、启动并配置第一台mysql #servicemysqlstart–-wsrep-new-cluster(每次启动集群的第一个节点要加该参数) 提示启动成功后,登录mysql 注: 如果登录需要密码,请使用如下语句查看 #cat/root/.mysql_secret #TherandompasswordsetfortherootuseratSatFeb1412: 45: 212015(localtime): QSwBMLBlVBBnejw5 其中QSwBMLBlVBBnejw5为第一次初始化mysql的随机密码 用这个密码登录后,需要重新设置mysql密码。 密令如下: mysql>SETPASSWORD=PASSWORD('media'); 目前的mysql密码为media,重启mysql后密码生效。 步骤2、启动余下结点 #servicemysqlstart 步骤3、配置mysql结点间访问权限 首先登录mysql,然后执行 #GRANTALLON*.*TO'cluster'@'%'IDENTIFIEDBY'media'; #GRANTALLON*.*TO'cluster'@'localhost'IDENTIFIEDBY'media'; #GRANTALLON*.*TO'root'@''; #GRANTALLON*.*TO'root'@''; 步骤4、通过查看4567端口确认集群是否启动: #netstat-plantu|grepmysqld 步骤5、查询galera插件是否已启用: #mysql-e"SHOWstatusLIKE'wsrep_ready'"–p 注意: ON表示已经启动成功 #mysql-e"SHOWVARIABLESLIKE'wsrep_cluster_address'"-p #mysql-e"SHOWSTATUSLIKE'wsrep%';"-p 注意: wsrep_cluster_size表示,已经成功连接的mysql主机个数。 Wsrep_incoming_address表示连接成功的主机地址和端口 6.2.8安装Xtrabackup(防止锁表,非阻塞) 步骤1、进入yum资源目录 #cd/etc/步骤2、编辑repo文件 #vi 保存如下内容: #Name: PerconaRPMRepository #URL: =CentOS$releasever-Percona baseurl==1 gpgkey==1 步骤3、安装Xtrabackup #yuminstallxtrabackup 6.2.9集群维护 1.启动集群 #servicemysqlstart 2.停止集群 #servicemysqlstop 3.状态查看 #servicemysqlstatus 4.查看mysql进程 #ps–ef|grepmysql 7AutoMySQLBackup热备份配置 7.1下载AutoMySQLBackup projects/automysqlbackup/ 7.2安装AutoMySqlBackup 步骤一、创建安装目录 把下载的文件拷贝到/root/下面 在/usr/local下面新建一个automysqlbackup文件夹,并进入这个文件夹 #cd/usr/local #mkdirautomysqlbackup # cdautomysqlbackup 步骤二、解压缩安装 #tar-xzvf/root/./ 注意: 中途会有两个询问配置文件安装目录的地方,之间回车就好 安装完以后会有提示信息,告诉你如果不是当前用户下使用这个命令要怎么办: 步骤三、修改配置文件 #cd/etc/autumysqlbackup #vi (1)、文件里有一些基本的配置信息,比如连接mysqlserver的用户名、密码、IP地址的。 #UsernametoaccesstheMySQLserver.dbuser CONFIG_mysql_dump_username='root' #PasswordtoaccesstheMySQLserver.password CONFIG_mysql_dump_password='1234' #Hostname(orIPaddress)ofMySQLserverlocalhost CONFIG_mysql_dump_host='localhost' (2)、配置backup存放路径 #Backupdirectorylocation/backups CONFIG_b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- nginx tomcat memcached 集群 安装 配置 操作 指导书