搭建Nginx(负载均衡)+Redis(Session共享)+Tomcat集群


http://www.cnblogs.com/zhengbin/p/5488415.html

一、环境搭建

Linux下Vagrant搭建Tomcat7、Java7

二、Nginx的安装配置与测试

  *虚拟机下转至root

sudo -i

  1)下载并解压(目前官网最新版本)

创建安装目录:mkdir /usr/local/soft && cd /usr/local/soft
命令下载Nginx压缩包:wget http://nginx.org/download/nginx-1.9.15.tar.gz
解压压缩包:tar zxvf nginx-1.9.15.tar.gz

  2)尝试安装Nginx

root@precise64:/usr/local/soft/nginx-1.9.15# ./configure 

  在最后提示:

./configure: error: the HTTP rewrite module requires the PCRE library.You can either disable the module by using --without-http_rewrite_moduleoption, or install the PCRE library into the system, or build the PCRE librarystatically from the source with nginx by using --with-pcre=<path> option.

  能看到PCRE的字眼,说明Nginx是依赖其它一些模块的,Nginx共依赖以下三个包:

1.gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )2.rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )3.ssl 功能需要 openssl 库 ( 下载: http://www.openssl.org/ )

  依赖包安装顺序依次为:opensslzlibpcre, 最后安装Nginx包

  3)下载并安装openssl

复制代码
命令下载openssl压缩包:wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz
解压压缩包:tar zxvf openssl-1.0.1t.tar.gz
安装:cd
openssl-1.0.1t && ./config && make && make install
在最后可能会提示你:
  sh: 1: make: not found
  The program 'make' is currently not installed.  You can install it by typing:
  apt-get install make
按照提示:apt-get install make
再次安装:
./config && make && make install
复制代码

  4)下载并安装zlib

下载zlib压缩包:wget http://zlib.net/zlib-1.2.8.tar.gz
解压:tar zxvf zlib-1.2.8.tar.gz 
安装:cd zlib-1.2.8/ && ./configure && make && make install

  5)下载并安装PCRE

复制代码
下载PCRE:wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
解压:tar zxvf pcre-8.37.tar.gz
安装:cd
pcre-8.37 && ./config
可能会提示你:
  configure: error: You need a C++ compiler for C++ support.
安装C++:
apt-get install g++(网速有限没有尝试)
再次安装:
./configure && make && make install
复制代码

  6)再次尝试安装Nginx

复制代码
安装命令:cd nginx-1.9.15/ && ./configure && make && make install
提示信息:
|| mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' \
|| cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
|| mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory `/usr/local/soft/nginx-1.9.15'
表示安装成功并安装至:/usr/local/nginx/
复制代码

  7)测试开启Nginx

复制代码
尝试启动:cd /usr/local/nginx/sbin/ && ./nginx
可能会提示:
  error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
搜索该文件:whereis libpcre.so.1
提示:libpcre.so: /lib64/libpcre.so.0 /usr/local/lib/libpcre.so /usr/local/lib/libpcre.so.1
 或 
libpcre.so: /usr/local/lib/libpcre.so.1 /usr/local/lib/libpcre.so
添加:
ln -s /usr/local/lib/libpcre.so.1 /lib64
 或:
ln -s /usr/local/lib/libpcre.so.1 /lib
再次尝试启动:
./nginx
复制代码

  打开浏览器,跳转至Vagrant配置的IP地址(没有端口号),显示如下即成功

三、配置Tomcat集群

  1)复制出两个Tomcat

复制:cp -r Tomcat-7 ./Tomcat7-2
重命名:mv Tomcat-7 Tomcat7-1
查看:ls
binetcgamesincludelibmannginxsbinsharesoftsrcsslTomcat7-1Tomcat7-2

  2)修改其中一个Tomcat的 server.xml

复制代码
打开配置文件:vim conf/server.xml
  • port="8005"shutdown="SHUTDOWN"> 改为 8006

  • port="8080"protocol="HTTP/1.1" 改为 8081

  • port="8009"protocol="AJP/1.3" 改为 8010

 保存::wq

复制代码

  3)添加测试页面

复制代码
创建应用文件夹:
mkdir /usr/local/Tomcat7-1/webapps/wwwmkdir /usr/local/Tomcat7-2/webapps/www
添加测试页面:
vim /usr/local/Tomcat7-1/webapps/www/index.jsp

<%@ pagelanguage="java" %>

<html>

<head><title>TomcatAtitle>head>

<body>

<h1style="color: red;">Tomcat Ah1>

<tablealign="centre"border="1">

<tr>

<td>Session IDtd>

<td><%= session.getId() %>td>

tr>

<tr>

<td>Created ontd>

<td><%= session.getCreationTime() %>td>

tr>

table>

body>

html>

sessionID:<%=session.getId()%>

<br>

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

<br>

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

<%

out.println("This is Tomcat Server A");

%>

复制测试页面:cp /usr/local/Tomcat7-1/webapps/www/index.jsp /usr/local/Tomcat7-2/webapps/www/
复制代码

  4)分别启动两个Tomcat

启动服务:/usr/local/Tomcat7-1/bin/startup.sh
可能提示:-bash: /usr/local/Tomcat7-1/bin/startup.sh: Permission denied
解决:cd /usr/local/Tomcat7-1/bin &&
chmod u+x *.sh
再次尝试启动服务:./startup.sh

  浏览器打开IP:8080/www/index.jsp 与 IP:8081/www/index.jsp,显示如下

四、用Nginx实现集群的负载均衡

  1)修改Nginx配置文件

复制代码
打开配置文件:vim /usr/local/nginx/conf/nginx.conf
在http { 内添加:
#Tomcat
 upstream zhengbin {
   server 192.168.33.10:8080 max_fails=1 fail_timeout=10s;
  server 192.168.33.10:8081 max_fails=1 fail_timeout=10s;
  }
在http { 的
server { 的 location / { 内添加:
  proxy_pass http://zhengbin;
保存配置::wq
复制代码

  2)重启Nginx

重新加载命令:/usr/local/nginx/sbin/nginx -s reload
查看更多命令:nginx/sbin/nginx -h

  现在浏览器打开http://IP/www/,同样显示TomcatA或TomcatB,尝试不断刷新,两个页面会交替显示,即成功

  但发现SessionID并不相同,接下来通过Redis来实现Session的共享(同步)

五、安装配置Redis并实现Session共享

  1)安装测试Redis

复制代码
安装:sudo apt-get install redis-server
测试:redis-server
提示:
[8206] 13 May 00:47:49 # Opening port: bind: Address already in use
测试:
  • redis-cli
  • redis 127.0.0.1:6379> exit

  • 说明安装成功

复制代码
复制代码
 注意:  redis-cli shutdown 为关闭连接  再次连接时显示:
Could not connect to Redis at 127.0.0.1:6379: Connection refused
    not connected> exit
 重新读取配置:redis-server /etc/redis/redis.conf
 再次连接:
  redis-cli
    redis 127.0.0.1:6379> exit
复制代码

  2)下载相关jar

1.下载commons-pool,建议下载1.6,2.4.2没有测试成功
2.下载tomcat-redis-session-manager,我用的jdk7所以用的是-7.jar
3.下载jedis作为java的redis客户端,建议用2.1.0,最新版本没有测试成功
最后将三个jar分别放在两个Tomcat的 /lib 中

  3)配置Tomcat

复制代码
修改配置文件:vim /usr/local/Tomcat7-1/conf/context.xml 
在节点中,添加以下内容:
className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
className="com.radiadesign.catalina.session.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
maxInactiveInterval="60"/>
复制:cp /usr/local/Tomcat7-1/conf/context.xml /usr/local/Tomcat7-2/conf/
复制代码

  4)启动测试

1.启动Nginx:/usr/local/nginx/sbin/nginx

2.启动Redis:redis-server
3.启动Tomcat:/usr/local/Tomcat7-1/bin/startup.sh && /usr/local/Tomcat7-2/bin/startup.sh 

  浏览器打开http://IP/www/index.jsp

  发现即使两个Tomcat在切换,但各自的SessionID是相同的

到此配置全部完成


Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值