用来记录centos6.7+nginx1.8.1+tomcat7集群 环境的搭建.
1.安装centos6.7
2.安装nginx1.8.1
3.安装jdk7
4.安装tomcat7
5.nginx+单个tomcat
6.nginx+2个tomcat集群
1.安装centos6.7
这个略过了.找个iso文件,装到vm就OK
安装后,切换到root用户sudo su - root
解决这个问题步骤如下
1) 输入 su root ,回车,会让输入密码,输入当前用户密码
2)visudo 找到 root ALL=(ALL) ALL 这行, 加入当前用户
3):wq保存并退出.
4)现在使用 sudo su - root 可以正常使用了.
2.安装nginx1.8.1
1) 下载安装包 http://nginx.org/en/download.html
2)创建一个文件夹,并解压刚才下载的包
tar zxvf nginx-1.8.1.tar.gz
3) 进行配置
cd /mnt/nginx-1.8.1
./configure
如果需要ssl支持,则需要执行 ./configure --with-http_ssl_module
报错,一些包找不到
4) 安装上面缺少的包
yum -y install pcre-devel
yum -y install openssl-devel
完成后,再 ./configure(或者./configure --with-http_ssl_module),虽然还有些包没找到,不过貌似不影响了
5)编译,安装
make
make install
6)测试是否安装成功
cd /usr/local/nginx/sbin
./nginx -t
7) 启动,访问测试
./nginx
打开浏览器,访问 http://localhost:80,如果不是本机换成ip访问.
8) 其他命令
pkill -9 nginx 停止
./nginx -s reload 重启(也是在/usr/local/nginx/sbin目录下)
3.安装jdk7
1)下载,官网找了下没找到,我用以前下载的包了
2) 将包放到 data目录下,解压
tar -zxvf jdk1.7.0_67.tar
3) 设置环境变量
vim /etc/profile
然后在文件最后插入
#set java environment
export JAVA_HOME=/data/jdk1.7.0_67
export JRE_HOME=/data/jdk1.7.0_67/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
4) 重新加载配置文件,测试
source /etc/profile
java -version
4.安装tomcat7
1) 下载安装包
2) 将包放到 data目录下,直接解压
tar zvxf apache-tomcat-7.0.56.tar.gz
sh /data/apache-tomcat-7.0.56/bin/startup.sh
如果提示
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined,则可能是环境变量未生效
因为我是开了2个命令行,一个装jdk,一个装tomcat,就出现了这个提示
执行
echo $JAVA_HOME
echo $JRE_HOME
打印环境变量,发下jdk可以,tomcat不行, 说明是命令行加载环境变量的问题,重新打开新的命令行即可
或者按网上的修改tomcat的配置文件,写上环境变量
4)测试
http://localhost:8080/
5.nginx+单个tomcat
1) 首先新建个web项目,项目名称test,在WebContent目录下新建一个t.html,然后把项目放到tomcat下面,启动,进行访问
Insert title here
这是tomcat1
2) 将tomcat和nginx关联起来, 其实就是访问nginx,然后nginx再转发给tomcat.
这就要修改下nginx的配置文件.(注意不是nginx安装目录下的配置文件)
vim /usr/local/nginx/conf/nginx.conf
在下图中标红的地方加上标红的话
proxy_pass http://localhost:8080;
3)重启nginx,访问 http://localhost/test/t.html (注意这里端口是默认80),成功显示,如下图:
6.nginx+2个tomcat集群
1) 首先把tomcat停掉,然后复制一份出来,改个名字,做区分,目录分别是tomcat1,tomcat2
2) 将tomcat2下面的 t.html内容修改一下,改为tomcat2
3)修改tomcat2占用的端口为7080;(8005,8009端口也要修改)
4) 修改ngnix的配置文件,用来做指向2个tomcat,如下图
增加 upstream 节点, 将2个tomcat包进去.下面的 proxy_pass 指向 upstream节点, 所以2处名称要保持一致.
nginx的负载均衡有好几种方式,常见的是轮询和ip_hash,默认的是轮询.所以我们在upstream中没有指定,就用默认的.
upstream local_tomcat {
server localhost:8080;
server localhost:7080;
}
proxy_pass http://local_tomcat;
5) 启动2个tomcat,分别访问
http://localhost:8080/test/t.html
http://localhost:7080/test/t.html
页面显示对应的tomcat名称.
6)重启nginx,访问http://localhost/test/t.html
多次刷新页面,发现 tomcat1和tomcat2 字样轮流显示, OK. 集群成功!
7)可以测试停掉tomcat1,或者tomcat2, nginx还能正常访问,这样就可以部署的时候不影响用户访问了.