以在Linux上发布项目网上商城为例,主要详细介绍如何在Linux下搭建Nginx+TomCat集群,顺便介绍在window下搭建Nginx+TomCat集群,统一开发环境为32位避免发生不必要的错误。

准备工作

在Linux系统上安装JDK

a.检测是否安装了openjdk
运行java -version

b.若有需要将其卸载

c.查看安装了哪些jdk
rpm -qa | grep java

d.卸载
先卸载 openjdk 1.7(通过rpm命令—–软件包管理器)
rpm -e –nodeps (卸载的包)
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.i686
再卸载 openjdk 1.6
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.i686

e.安装jdk
上传jdk 通过ftp软件(FileZilla)上传(上传到root目录下)
在 /usr/local创建一个 java目录
mkdir java
将上传的jdk复制到 java目录下
cp /root/jdk.xxxxx.gz /usr/local/java
将其解压
tar -xvf jdk.xxx.gz

f.安装依赖(通过yum命令从指定服务器自动下载rpm包并安装——前端软件包管理器)
yum install glibc.i686

g.配置环境变量
编辑 vi /etc/profile
在文件最后添加一下信息

    #set java environment
    JAVA_HOME=/usr/local/java/jdk1.7.0_72
    CLASSPATH=.:$JAVA_HOME/lib.tools.jar
    PATH=$JAVA_HOME/bin:$PATH
    export JAVA_HOME CLASSPATH PATH
保存退出 `wq`
使更改的配置立即生效  `source /etc/profile`  

h.检测是否安装成功
java -version

在Linux下安装MySQL

a.检测是否安装了mysql
rpm -qa | grep mysql

b.卸载系统自带的mysql
rpm -e –nodeps (卸载的包)
rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.i686

c.上传mysql 通过ftp软件(FileZilla)上传(上传到root目录下)

d.在 /usr/local/ 创建一个mysql目录
mkdir mysql

e.复制mysql到mysql目录下
cp /root/MySQL-5.5.49-1.linux2.6.i386.rpm-bundle.tar /usr/local/mysql

f.解压MySQL-5.5.49-1.linux2.6.i386.rpm-bundle.tar (会有几个rpm文件)
tar -xvf MySQL-5.5.49-1.linux2.6.i386.rpm-bundle.tar

g.安装
安装mysql的服务器端
rpm -ivh MySQL-server-5.5.49-1.linux2.6.i386.rpm --force --nodeps
注意:第一次登录mysql的时候没有不需要密码的 以后都需要
安装mysql的客户端
rpm -ivh MySQL-client-5.5.49-1.linux2.6.i386.rpm --force --nodeps

h.查看mysql的服务状态
service mysql status
启动 mysql
service mysql start
停止mysql
service mysql stop

i.修改mysql的root的密码
登录:mysql -u root -p
修改密码:
use mysql;
update user set password = password('111111') where user = 'root';
flush privileges; (刷新)

j.开启远程访问
grant all privileges on *.* to 'root' @'%' identified by '111111';
flush privileges;

k.开启防火墙端口 3306 (先用exit命令退出mysql)
3306端口放行
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save

l:设置mysql的服务随着系统的启动而启动
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on

在Linux下安装TomCat

a.在/usr/local下 创建tomcat目录
mkdir tomcat

b.复制apache-tomcat-7.0.52.tar.gz到/usr/local/tomcat
cp apache-tomcat-7.0.52.tar.gz /usr/local/tomcat

c.解压tomcat
tar -xvf apache-tomcat-7.0.52.tar.gz

d.进入apache-tomcat-7.0.52/bin启动tomcat
方式1:
sh startup.sh
方式2:
./startup.sh

e.开启端口号8080
8080端口放行
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save

注意:
查看日志文件
tail -f logs/catalina.out
退出 ctrl+c

发布项目

a.数据库和表
备份store28的数据库
在windows下
mysqldump -uroot -p1234 store28 > g:/1.sql
将1.sql上传 root目录
通过远程工具还原数据库
先登录mysql mysql -u lousen -p
创建数据库 create database productstore
进入productstore use productstore;
还原 source /root/1.sql;

b.项目
将项目打包war
war包的特点:
在tomcat/webapps目录下 只要tomcat启动 war会自动解压
将store.war上传到虚拟机的root目录下
将store.war移动到tomcat/webapps下即可
cp store.war /usr/local/tomcat/apache-tomcat-7.0.52/webapps

在Linux下安装Ngnix

a.先将 nginx上传到linux上

b.解压nginx
mkdir /usr/local/nginx
cp ngnxi /usr/local/nginx/
tar -xvf nginx

c.先编译nginx
安装依赖包
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
执行编译
先进入nginx-1.8.0的目录
执行
./configure

d.安装nginx
执行
make
make install

e.启动nginx
cd nginx-1.8.0目录下
配置文件在conf
进入sbin目录
启动nginx
./nginx
退出ngnix (等待程序执行后再关闭)
./nginx -s quit
关闭命令(直接关闭)
./nginx -s stop
动态加载配置文件
./nginx -s reload

f.将端口号80放行(可以更改端口号为8888)
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save

在Linux下搭建集群

1.在/usr/local/目录下创建tomcat1
mkdir tomcat1
2.把tomcat复制到tomcat1解包并修改端口号为8090
cp apache-tomcat-7.0.52.tar.gz /usr/local/tomcat1
tar -xvf tomcat
vim server.xml

3.把测试项目上传到tomcat1的webapps目录下
cp test /usr/local/tomcat1/apache-tomcat-7.0.52/webapps

4.在webapps目录下创建test目录并解压项目到该目录
mkdir test
mv test.war test
jar -xvf test.war

5.复制tomcat1为tomcat2
cp -r tomcat1 tomcat2

6.修改tomcat2的端口号为8100
vim server.xml

7.修改测试项目文件
vim index.jsp

8.修改nginx配置文件
vim nginx.conf
需要在http节点上添加一个
upstream servlet_xujie{
server 127.0.0.1:8090;
server 127.0.0.1:8100;
ip_hash;
}
修改location /下的反向代理
proxy_pass http://servlet_xujie;

9.动态加载配置文件
进入sbin目录
./nginx -s reload

10.启动tomcat1和tomcat2和nginx

在Window下搭建集群

1.新建两个目录tomcat1 tomcat2

2.修改tomcat2的端口,在tomcat1的端口上+10

3.解压nginx
修改nginx的 nginx.conf文件
在locatioin / 下添加了反向代理
proxy_pass http://localhost:8080(代理服务器地址)
这是只是代理一台服务器

4.代理集群
需要在http节点上添加一个
upstream servlet_xujie{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
}
修改location /下的反向代理
proxy_pass http://servlet_xujie;

5.session共享问题
解决方式1:只能在window下好使
web服务器解决(广播机制)
注意:tomcat下性能低
修改两个地方:
1.修改tomcat的server.xml 支持共享
将引擎标签下的

注释去掉
2.修改项目的配置文件web.xml节点中添加一个节点
<distributable/>
解决方式2:
可以将session的id放入redis中
解决方式3:
保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了,在linux
在nginx的配置文件中
upstream中添加 ip_hash;

最后更新: 2018年10月08日 18:25

原始链接: https://www.lousenjay.top/2018/05/20/Nginx学习笔记/