nginx+tomcat

实验环境

操作系统

主机名

IP

软件

CentOS 6.5

nginx1

192.168.200.101

VIP:192.168.200.253

Nginx的+ KEEPALIVED

CentOS 6.5

nginx2

192.168.200.102

VIP:192.168.200.254

Nginx的+ KEEPALIVED

CentOS 6.5

tomcat1

192.168.200.103

Tomcat的+ memcached的

CentOS 6.5

tomcat2

192.168.200.104

Tomcat的+ memcached的

配置过程

统一配置

[root @ nginx1〜]#cat / etc / hosts

192.168.200.101 nginx1

192.168.200.102 nginx2

192.168.200.103 tomcat1

192.168.200.104 tomcat2

nginx1服务器部署

配置主机名

[root @ localhost〜]#主机名nginx1

[root @ localhost〜]#bash

百胜安装nginx的

[root @ nginx1〜]#yum -y install pcre-devel

[root @ nginx1〜]#rpm -ivh nginx-1.8.0-1.el6.x86_64_.rpm

准备... ########################################### [100% ]

   1:nginx ########################################### [100%]

查找主配置文件

[root @ nginx1〜]#find / -type f -name“nginx.conf”

/etc/nginx/nginx.conf

/application/nginx-1.8.0/conf/nginx.conf

修改主配置文件

[root @ nginx1〜]#vim / application / nginx / conf / nginx.conf

keepalive_timeout 65;

 

        上游tomcat_server {

        服务器192.168.200.103:8080weight=1;

        服务器192.168.200.104:8080weight=1;

         }

 

    gzip on;

 

    服务器{

       听80;

       server_name localhost;

 

        位置/ {

           根html;

           index index.html index.htm;

            proxy_pass http:// tomcat_server;

        }

}

检查语法

[root @ nginx1〜]#/ application / nginx / sbin / nginx -t

nginx:配置文件/应用程序/ nginx-1.8.0 / conf / nginx.conf语法正常

nginx:配置文件/应用程序/ nginx-1.8.0 / conf / nginx.conf测试成功

启动nginx的

[root @ nginx1〜]#/ application / nginx / sbin / nginx -c / application / nginx / conf / nginx.conf

[root @ nginx1〜]#netstat -anpt | grep nginx

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2730 / nginx    

nginx2配置和nginx1相同

双VIP负载均衡

工作原理:

两台Nginx 通过Keepalived 生成二个实例,二台Nginx VIP 互为备份,任何一台Nginx 机器如果发生硬件损坏,Keepalived 会自动将它的VIP 地址切换到另一台机器,不影响客户端的访问。

在nginx1 / 2上编译安装KEEPALIVED服务:

[root @ nginx1〜]#yum -y install kernel-developenssl-devel

[root @ nginx1〜]#tar xf keepalived-1.2.13.tar.gz

[root @ nginx1〜]#cd keepalived-1.2.13

[root @ nginx1 keepalived-1.2.13]#。/ configure --prefix = / - with-kernel-dir = / usr / src / kernels / 2.6.32-431.el6.x86_64 / && make && make install

[root @ nginx1 keepalived-1.2.13]#chkconfig --addkeepalived

[root @ nginx1 keepalived-1.2.13]#chkconfig keepalivedon

[root @ nginx1 keepalived-1.2.13]#chkconfig --listkeepalived

keepalived 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

修改KEEPALIVED配置文件

nginx1

[root @ nginx1 keepalived-1.2.13]#vim / etc / keepalived / keepalived.conf

配置文件keepalived

 

global_defs {

  notification_email {

       wolf@163.com

   }

   smtp_server127.0.0.1

  smtp_connect_timeout 30

   router_idLVS_DEVEL

}

 

vrrp_instance VI_1 {

    状态备份

    interfaceeth0

   virtual_router_id 51

    优先权50

    advert_int 1

   认证{

       auth_type PASS

       auth_pass 1111

    }

    virtual_ipaddress {

        192.168.200.254

    }  

}

 

vrrp_instanceVI_2 {

    状态MASTER

    接口eth0

    virtual_router_id 52

    优先权100

    advert_int 1

    认证{

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.200.253

    }

}

 

nginx2

配置文件keepalived

 

global_defs {

  notification_email {

       wolf@163.com

   }

   smtp_server127.0.0.1

  smtp_connect_timeout 30

   router_idLVS_DEVEL

}

 

vrrp_instance VI_1 {

    状态MASTER

    interfaceeth0

   virtual_router_id 51

    优先权100

    advert_int 1

   认证{

       auth_type PASS

       auth_pass 1111

    }

   virtual_ipaddress {

        192.168.200.254

    }

}

 

vrrp_instance VI_2 {

    状态备份

    interfaceeth0

   virtual_router_id 52

    优先权50

    advert_int 1

   认证{

       auth_type PASS

       auth_pass 1111

    }

   virtual_ipaddress {

        192.168.200.254

    }

}

启动KEEPALIVED

[root @ nginx1 keepalived-1.2.13]#service keepalivedstart

正在启动keepalived:[确定]

 

[root @ nginx2 keepalived-1.2.13]#service keepalivedstart

正在启动keepalived:[确定]

查看VIP效果

[root @ nginx1 keepalived-1.2.13]#ip addr show dev eth0

2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1500 qdisc pfifo_fast状态UP qlen 1000

    link / ether00:0c:29:7a:34:c4 brd ff:ff:ff:ff:ff:ff

    inet 192.168.200.101/24 brd192.168.200.255 scope global eth0

    inet 192.168.200.253/32 scopeglobal eth0

    inet6fe80 :: 20c:29ff:fe7a:34c4 / 64范围链接

       valid_lftforever preferred_lft永远

 

 [root@nginx2keepalived-1.2.13] #ip addr show dev eth0

2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1500 qdisc pfifo_fast状态UP qlen 1000

    link / ether00:0c:29:42:62:29 brd ff:ff:ff:ff:ff:ff

    inet 192.168.200.102/24 brd192.168.200.255 scope global eth0

    inet 192.168.200.254/32 scopeglobal eth0

    inet6fe80 :: 20c:29ff:fe42:6229/64范围链接

       valid_lftforever preferred_lft永远

安装配置JDK和Tomcat的服务器:

[root @ tomcat1〜]#rm -rf $(which java)

[root @ tomcat1〜]#tar xf jdk-7u65-linux-x64.tar.gz

[root @ tomcat1〜]#mv jdk1.7.0_65 / usr / local / java

[root @ tomcat1〜]#vim / etc / profile

添加                                    

导出JAVA_HOME = / usr / local / java

exportPATH = $ PATH:$ JAVA_HOME / bin中

[root @ tomcat1〜]#source / etc / profile

[root @ tomcat1〜]#java -version

java版本“1.7.0_65”

Java(TM)SE运行时环境(build 1.7.0_65-b17)

Java HotSpot(TM)64位服务器虚拟机(构建24.65-b04,混合模式)

 

[root @ tomcat1〜]#tar xf apache-tomcat-7.0.54.tar.gz

[root @ tomcat1〜]#mv apache-tomcat-7.0.54 / usr / local / tomcat7

[root @ tomcat1〜]#/usr/local/tomcat7/bin/startup.sh

使用CATALINA_BASE:/ usr / local / tomcat7

使用CATALINA_HOME:/ usr / local / tomcat7

使用CATALINA_TMPDIR:/ usr / local / tomcat7 / temp

使用JRE_HOME:/ usr / local / java

使用CLASSPATH:/usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar

Tomcat开始了。

[root @ tomcat1〜]#netstat -anpt | grep:8080

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2734 / java          

打开浏览器测试的Tomcat是否安装成功

建立的Java的网络站点:

首先在跟目录下建立一个web应用程序目录,用于存放网站文件

[root @ tomcat-1〜]#mkdir / webapp

 

在webapp1目录下建立一个index.jsp中的测试页面

[root @ tomcat-1〜]#vim /webapp/index.jsp

ServerInfo:  

SessionID的:<%= session.getId()%>

点击

SessionIP:<%= request.getServerName()%> 

点击

SessionPort:<%= request.getServerPort()%>

点击

<%

  out.println(“server one”);

%>

修改的Tomcat的server.xml的文件

定义一个虚拟主机,并将网站文件路径指向已经建立的/ web应用,在主机段增加上下文段

[root @ tomcat1〜]#cp / usr / local / tomcat7 / conf / server.xml {,.bak}

[root @ tomcat1〜]#vim / usr / local / tomcat7 / conf / server.xml

124 <主机名=“本地主机”appBase =“ webapps

125 unpackWARs =“true”autoDeploy =“true”>

126 <上下文docBase =“ / webapp ”path =“”reloadable =“ flase ”>

127 </ Context>

docBase =“/ webapp”#web 应用的文档基准目录

path =“”#设置默认“类”

reloadable =“flase”#设置监视“类”是否变化

重新启动Tomcat的测试

Tomcat 2配置方法基本与Tomcat 1相同

安装JDK,配置Java环境,版本与Tomcat 1保持一致

安装Tomcat,版本与Tomcat 1保持一致

[root @ tomcat-2〜]#vim /webapp/index.jsp

ServerInfo:  

SessionID的:<%= session.getId()%>

点击

SessionIP:<%= request.getServerName()%> 

点击

SessionPort:<%= request.getServerPort()%>

点击

<%

  out.println(“server two”);

%>

 

[root @ tomcat-2〜]#cp / usr / local / tomcat7 / conf / server.xml {,.bak}

[root @ tomcat-2〜]#vim / usr / local / tomcat7 / conf / server.xml

 

124 <主机名=“本地主机”appBase =“ webapps

125 unpackWARs =“true”autoDeploy =“true”>

126 <上下文docBase =“ / webapp ”path =“”reloadable =“ flase ”>

127 </ Context>

 

重新启动Tomcat的浏览器测试

[root @ tomcat-2〜]#/usr/local/tomcat7/bin/shutdown.sh

[root @ tomcat-2〜]#/usr/local/tomcat7/bin/startup.sh

Tomcat的配置相关说明

/ usr / local / tomcat7                 #主目录

bin                                                   #存放windows或linux平台上启动或关闭的Tomcat的脚本文件

conf                                           #存放Tomcat的各种全局配置文件,其中最主要的是server.xml和web.xml

lib                                                    #存放Tomcat运行需要的库文件(JARS)

logs                                            #存放Tomcat执行时的LOG文件

webapps                                       #Tomcat的主要Web发布目录(包括应用程序事例)

工作                                               #存放jsp编译后产生的类文件

 

[root @ tomcat-1〜]#ls / usr / local / tomcat7 / conf /

catalina.policy                     #权限控制配置文件

catalina.properties            #Tomcat属性配置文件

context.xml                                   #上下文配置文件(selinux)

logging.properties             #日志日志相关配置文件

server.xml                             #主配置文件

tomcat-users.xml                   #manager-gui管理用户配置文件(Tomcat安装后生成的管理界面,该文件可开启访问)

web.xml                                         #Tomcat的servlet,servlet-mapping,filter,MIME等相关配置

 

server.xml                #主要配置文件,可修改启动端口,设置网站根目录,虚拟主机,开启https等功能。

 

server.xml中的结构构成

<服务器>

         <业务>

                   <连接器/>

                            <发动机>

                                     <主机>

                                              <Context> </ Context>

                                     </主机>

                            </发动机>

         </服务>

</服务器>

 

<! - - >内的内容是注视信息

 

服务器

服务器元素代表了整个卡特琳娜的的Servlet容器

 

服务

服务是这样一个集合,它由一个或多个连接器组成,以及一个引擎,负责处理所有连接器所获得的客户请求。

 

连接器

一个连接器在某个指定端口上侦听客户请求,并将获得的请求交给引擎来处理,从发动机处获得回应并返回客户。

 

TomcatEngine有两个典型的连接器,一个直接侦听来自浏览器的HTTP请求,一个侦听来自其他Web服务器的请求

Coyote Http / 1.1 Connector在端口8009处听听来自其他的wenserver(Apache)的servlet / jsp代理请求。

 

发动机

发动机下可以配置多个虚拟主机虚拟主机,每个虚拟主机都有一个域名

当发动机获得一个请求时,它把该请求匹配到某一个主机上,然后把该请求交给该主机来处理,

引擎有一个默认的虚拟主机,当请求无法匹配到任何一个主机上的时候,将交给该默认主机来处理

 

主办

代表一个虚拟主机,虚拟主机,每个虚拟主机和某个网络域名域名相匹配

每个虚拟主机下都可以部署(部署)一个或多个Web应用程序,每个Web应用程序对应一个上下文,有一个Contextpath。

 

当主机获得一个请求时,将把该请求匹配到某个语境上,然后把该请求交给该上下文来处理,匹配的方法是最长匹配,所以一个路径==“”的背景下将成为该主机的默认上下文匹配。

 

上下文

一个Context对应一个Web应用程序,一个Web应用程序由一个或多个Servlet组成。

nginx1 / 2二台机器都执行监控Nginx的进程的脚本

脚本文件

[root @ nginx2 keepalived-1.2.13]#vim nginx_pidcheck

 

#!/斌/庆典

同时:

        nginxpid =`ps-C nginx --no-header | wc -l`

        如果[$ nginxpid -eq 0]

        然后

               /应用/ nginx的/ sbin目录/ nginx的

               keeppid = $(ps -C keepalived --no-header | wc -l)

               如果[$ keeppid -eq 0]

               然后

                       /etc/init.d/keepalived启动

               科幻

               睡5

               nginxpid =`ps -C nginx --no-header | wc -l`

               如果[$ nginxpid -eq 0]

               然后

                       /etc/init.d/keepalived stop

               科幻

        科幻

        睡5

DONE

后台执行监控脚本

[root @ nginx1 keepalived-1.2.13]#sh nginx_pidcheck&

[1] 4325

查看端口

[root @ nginx1 keepalived-1.2.13]#netstat -anpt | grepnginx

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2730 / nginx     

[root @ nginx1 keepalived-1.2.13]#killall -s QUITnginx   

[root @ nginx1 keepalived-1.2.13]#netstat -anpt | grepnginx

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2730 / nginx     

VIP转移测试

[root @ nginx1 keepalived-1.2.13] #ip addr show dev eth0

2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1500 qdisc pfifo_fast状态UP qlen 1000

    link / ether00:0c:29:7a:34:c4 brd ff:ff:ff:ff:ff:ff

    inet192.168.200.101 / 24 brd 192.168.200.255 scope global eth0

    inet192.168.200.253 / 32 scope global eth0

    inet6fe80 :: 20c:29ff:fe7a:34c4 / 64范围链接

       valid_lftforever preferred_lft永远

 

[root @ nginx2 keepalived-1.2.13]#service keepalivedstop

停止keepalived:[确定]

 

[root @ nginx1 keepalived-1.2.13] #ip addr show dev eth0

2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1500 qdisc pfifo_fast状态UP qlen 1000

    link / ether00:0c:29:7a:34:c4 brd ff:ff:ff:ff:ff:ff

    inet 192.168.200.101/24 brd192.168.200.255 scope global eth0

    inet 192.168.200.253/32 scopeglobal eth0

    inet 192.168.200.254/32 scopeglobal eth0

    inet6fe80 :: 20c:29ff:fe7a:34c4 / 64范围链接

       valid_lftforever preferred_lft永远

部署安装的memcached

编译安装

[root @ tomcat1〜]#yum -y install gcc openssl-develpcre-devel zlib-devel

[root @ tomcat1〜]#tar xf libevent-2.0.15-stable.tar.gz

[root @ tomcat1〜]#cd libevent-2.0.15-stable

[root @ tomcat1 libevent-2.0.15-stable]#./configure--prefix=/usr/local/libevent && make && make install

 

[root @ tomcat1 libevent-2.0.15-stable]#cd

[root @ tomcat1〜]#tar xf memcached-1.4.5.tar.gz

[root @ tomcat1〜]#cd memcached-1.4.5

[root @ tomcat1 memcached-1.4.5]#./configure--prefix=/usr/local/memcached --with-libevent = / usr / local / libevent / && make && make install 

 

[root @ tomcat1 memcached-1.4.5]#ldconfig -v | greplibevent

         libevent-1.4.so.2-> libevent-1.4.so.2.1.3

         libevent_extra-1.4.so.2-> libevent_extra-1.4.so.2.1.3

         libevent_core-1.4.so.2-> libevent_core-1.4.so.2.1.3

 

[root @ tomcat1 memcached-1.4.5]#/ usr / local / memcached / bin / memcached -u root -m512M -n 10 -f 2 -d -vvv -c 512

/ usr / local / memcached / bin / memcached:加载共享库时出错:libevent-2.0.so.5:无法打开共享目标文件:没有这样的文件或目录

 

[root @ tomcat1 memcached-1.4.5]#vim /etc/ld.so.conf

包括ld.so.conf.d / *。conf

在/ usr /本地/ libevent的/ lib目录/

[root @ tomcat1 memcached-1.4.5]#ldconfig

启动memcached的

[root @ tomcat1 memcached-1.4.5]#/ usr / local / memcached / bin / memcached -u root -m 512M -n 10 -f 2 -d -vvv -c 512

选项:

       -h#查看帮助信息

       -p#指定memcached监听的端口号默认11211

       -l #memcached 服务器的ip地址

       -u #memcached 程序运行时使用的用户身份必须是root用户

       -m#指定使用本机的多少物理内存存数据默认64M

       -c #memcached 服务的最大链接数

       -vvv#显示详细信息

       -n #chunk size 的最小空间是多少单位字节

       -f #chunk size 大小增长的倍数默认1.25

       -d#在后台启动

另开一个终端测试端口

[root @ tomcat1〜]#netstat -anpt | grep:11211

tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 10316 / memcached    

测试memcached的能否存取数据

[root @ nginx1 keepalived-1.2.13]#telnet192.168.200.103 11211

尝试192.168.200.103 ...

连接到192.168.200.103。

转义字符是'^]'。

setusername 0 0 8

张三

STORED

getusername

VALUE用户名0 8

张三

结束

放弃

外部主机关闭连接。

最后执行让Tomcat-1 Tomcat-2通过(msm)连接到Memcached

将会话包中的“* .jar复制到/ usr / local / tomcat7 / lib /下面

[root @ tomcat-1〜]#cp session / * / usr / local / tomcat7 / lib /

 

编辑tomcat配置文件连接指定的memcached服务器

tomcat-1  和tomcat-2  配置文件一模一样,都按照一下样例写

[root @ tomcat-1〜]#vim / usr / local / tomcat7 / conf / context.xml

<背景>

<Manager className =“de.javakaffee.web.msm.MemcachedBackupSessionManager”

memcachedNodes = “MEMA:192.168.200.103:11211memB:192.168.200.104:11211”

requestUrilgnorePattern = “* \。(ICO | PNG | GIF | JPG | CSS | JS)$”

transcoderFactoryClass = “de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory”

/>

</上下文>

 

[root @ tomcat-2〜]#vim / usr / local / tomcat7 / conf / context.xml

<背景>

<Manager className =“de.javakaffee.web.msm.MemcachedBackupSessionManager”

memcachedNodes = “MEMB:192.168.200.104:11211memA:192.168.200.103:11211”

requestUrilgnorePattern = “* \。(ICO | PNG | GIF | JPG | CSS | JS)$”

transcoderFactoryClass = “de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory”

/>

</上下文>

重启tomcat的查询结果

[root @ tomcat-1〜]#/usr/local/tomcat7/bin/shutdown.sh

[root @ tomcat-1〜]#/usr/local/tomcat7/bin/startup.sh

 

如果成功,tomcat的与Memcached的端口会连在一起,前后有变化

Tomcat的1 与Tomcat的2如下图

[root @ tomcat1〜]#netstat -anpt | grep java

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 10665 / java         

tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 10665 / java         

tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 10665 / java         

tcp 0 0192.168.200.103:31345 192.168.200.103:11211 ESTABLISHED 10665 / java         

tcp 0 0192.168.200.103:31341 192.168.200.103:11211 ESTABLISHED10665 / java         

tcp 0 0192.168.200.103:55980 192.168.200.104:11211 ESTABLISHED 10665 / java         

tcp 0 0192.168.200.103:55978 192.168.200.104:11211 ESTABLISHED 10665 / java                 

[root @ tomcat1〜]#netstat -anpt | grep:11211

tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 10605 / memcached    

tcp 0 0192.168.200.103:31345 192.168.200.103:11211 ESTABLISHED 10665 / java          

tcp 0 0192.168.200.103:11211 192.168.200.103:31341 ESTABLISHED 10605 / memcached    

tcp 0 0192.168.200.103:31341 192.168.200.103:11211 ESTABLISHED 10665 / java         

tcp 0 0 192.168.200.103:55980 192.168.200.104:11211 ESTABLISHED 10665 / java         

打开浏览器测试

由于权重相同,页面会反复切换一/二

远程同步备份

rsync的命令的基本用法:

格式:rsync【选项】源文件目标文件

常见的选项:

-a,--archive(存档)归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于加了参数-rlptgoD

-r,--recursive对子目录以递归模式处理

-l, - 链接表示拷贝链接文件

-p,--perms表示保持文件原有权限

-t,--times表示保持文件原有时间

-g,--group表示保持文件原有属用户组

-o,--owner表示保持文件原有属主

-D,--devices表示块设备文件信息

-z,--compress表示压缩传输

-H表示硬链接文件

-A保留ACL属性信息

-P显示传输进度

-u --update仅仅进行更新,也就是跳过所有已经存在于目标位置,并且文件时间晚于要备份的文件。(不覆盖更新的文件)

--port = PORT指定其他的rsyncc服务端口873

- 删除哪些目标位置有原始位置没有的文件

--password-file = FILE从FILE中得到密码

--bwlimit = KBPS限制I / O带宽,KB /秒

--filter“ - 文件名”需要过滤的文件

--exclude =:需要过滤的文件

-v显示同步过程的详细信息

环境

tomcat1同步源192.168.200.103

tomcat2同步目标192.168.200.104

同步tomcat1的/ web应用到tomcat2的/ web应用

安装的rsync

[root @ tomcat1〜]#rpm -qf`which rsync`

rsync的-3.0.6-9.el6_4.1.x86_64

[root @ tomcat1〜]#rpm -ivh / media / cdrom / Packages / rsync-3.0.6-9.el6_4.1.x86_64.rpm

准备... ########################################### [100% ]

         packagersync-3.0.6-9.el6_4.1.x86_64已经安装

安装xinetd的服务来管理的rsync服务

[root @ tomcat1〜]#rpm -ivh / media / cdrom / Packages / xinetd-2.3.14-39.el6_4.x86_64.rpm

准备... ########################################### [100% ]

   1:xinetd ########################################### [100%]

开启rsync的服务

[root @ tomcat1〜]#vim /etc/xinetd.d/rsync

修改:disable = yes

  为:disable = no

 

[root @ tomcat1〜]#/etc/init.d/xinetd restart

停止xinetd:[失败]

正在启动xinetd:[确定]

查看是否支持inotify的,从kernel2.6.13开始正式并入内核。

[root @ tomcat1〜]#uname -r

2.6.32-431.el6.x86_64

 

[root @ tomcat1〜]#ll / proc / sys / fs / inotify /

总用量0

-rw-r - r-- 1 root root 0 4月16 19:09 max_queued_events

-rw-r - r-- 1 root root 0 4月16 19:09 max_user_instances

-rw-r - r-- 1 root root 0 4月16 19:09 max_user_watches

注:在Linux的内核中,默认的inotify的机制提供了三个调控参数

max_queued_events#表示监控事件队列

max_user_instances#表示最多监控实例数

max_user_watches#表示每个实例最多监控文件数

 

查看具体参数值

[root @ tomcat1〜]#cat / proc / sys / fs / inotify / max_queued_events

16384

[root @ tomcat1〜]#cat / proc / sys / fs / inotify / max_user_instances

128

[root @ tomcat1〜]#cat / proc / sys / fs / inotify / max_user_watches

8192

注:当要监控的目录,文件数量较多或者变化较频繁时,要加大这三个参数的值

修改的/etc/sysctl.conf配置文件

[root @ tomcat1〜]#vim /etc/sysctl.conf

文件最后添加以下内容

fs.inotify.max_queued_events = 32768

fs.inotify.max_instances = 1024

fs.inotify.max_user_watches = 90000000

 

[root @ tomcat1〜]#sysctl -p#修改后使用sysctl.conf文件生效

[root @ tomcat1〜]#cat / proc / sys / fs / inotify / max_user_watches#查看是否修改成功

90000000

做SSH密钥认证

[root @ tomcat1〜]#ssh-keygen

生成公钥/私钥rsa密钥对。

输入保存密钥的文件(/root/.ssh/id_rsa):

输入密码(没有密码时为空):

再次输入相同的密码:#回车

您的身份已保存在/ root / .ssh / id_rsa中。

您的公钥已保存在/ root / .ssh / id_rsa.pub中。

关键指纹是:#回车

9F:BF:BD:15:E0:DD:07:63:6C:08:43:4C:A7:C9:d6中:e2root @ tomcat1

钥匙的randomart图像是:#回车

+ - [RSA 2048] ---- +

| + =。|

| ..Bo |

| * o。* |

| o..ooo。|

| SE。OO |

| .. o |

| o。|

| .. |

| oo |

+ ----------------- +

[root @ tomcat1〜]#ssh-copy-id root@192.168.200.104

主机'192.168.200.104(192.168.200.104)'的真实性无法建立。

RSA密钥指纹是98:22:6a:f2:64:d6:e8:98:b7:c9:7b:58:b7:03:a8:9b。

你确定要继续连接吗(是/否)?

警告:将“192.168.200.104”(RSA)永久添加到已知主机的列表中。

root@192.168.200.104的密码:           输入主机tomcat2 root 密码

现在尝试使用“ssh'root@192.168.200.104'”登录到机器中,然后检入:

 

 的.ssh / authorized_keys中

 

以确保我们没有添加额外的密钥,而您并不期待。   成功标志

 

测试,不输入密码直接登录和备份

[root @ tomcat1〜]#mkdir / xiaoyi

[root @ tomcat1〜]#cd / xiaoyi /

 [root @ tomcat1xiaoyi]#touch wolf.txt

[root @ tomcat1 xiaoyi]#ls

wolf.txt

[root @ tomcat1 xiaoyi]#cd

 

[root @ tomcat1〜]#rsync -azP / xiaoyi root@192.168.200.104:/ opt

发送增量文件列表

孝义/

孝义/ wolf.txt

           0100%0.00kB / s 0:00:00(xfer#1,to-check = 0/2)

 

发送了97个字节,收到35个字节88.00字节/秒

总大小为0加速比为0.00

 

tomcat2上测试

[root @ tomcat2〜]#ls / opt / xiaoyi /

wolf.txt

安装inotify工具

安装inotify工具后,将拥有inotifywait,inotifywatch辅助工具程序,从而来监控,汇总文件系统改动情况

[root @ tomcat1〜]#tar xf inotify-tools-3.14.tar.gz

[root @ tomcat1〜]#cd inotify-tools-3.14

[root @ tomcat1〜]#./configure && make && make install

 

测试

使用inotifywait命令监控网站目录/ web应用发生的变化。然后在另一个终端向/ web应用目录下添加,移动文件,查看屏幕输出结果。

[root @ tomcat1〜]#inotifywait -mrq -ecreate,move,delete,modify,attrib / webapp /

常用参数:

-e    用来指定要监控哪些事件

这些事件包括:创建创建,移动移动,删除删除,修改修改文件内容,ATTRIB属性更改

-m  标识持续监控

-r    标识递归整个目录

-q   标识简化输出信息

编写触发式同步脚本

[root @ tomcat1〜]#vim a.sh

#!/斌/庆典

inotifywait -mrq -ecreate,移动,删除,修改,attrib / webapp / | 同时阅读abc

        rsync-azP / webapp / root@192.168.200.104:/ webapp /

DONE

测试

执行脚本

[root @ tomcat1〜]#bash a.sh

 

另开一个终端

[root @ tomcat1〜]#cd / webapp /

[root @ tomcat1 webapp]#mkdir a

 

查看变化

[root @ tomcat1〜]#bash a.sh

发送增量文件列表

./

的index.jsp

         179100%0.00kB / s 0:00:00(xfer#1,to-check = 2/4)

一个/

测试/

 

发送251字节收到48个字节598.00bytes /秒

总大小是179加速是0.60

 

查看tomcat2上的变化

[root @ tomcat2 webapp]#ls

一个   index.jsp测试 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kuciwj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值