基础环境:
关闭防火墙,selinux;安装工具tree;jdk-8u91-linux-x64.tar.gz;apache-tomcat-7.0.34.tar.gz;jspgouV6-ROOT.zip
一、单机单实例配置
1. 部署JAVA环境:
# tar xf jdk-8u91-linux-x64.tar.gz -C /usr/local
方式1: # ln -s /usr/local/jdk1.8.0_91 /usr/local/java
方式2: # mv /usr/local/jdk1.8.0_91 /usr/local/java
修改环境变量:
方式1:写到系统自带的启动脚本内
# vim /etc/profile
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
方式2:自己创建一个启动脚本
# vim /etc/profile.d/jdk.sh
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
使上设置的脚本立即生效:
# source /etc/profile
测试java环境:
# env |grep JAVA
JAVA_HOME=/usr/local/java
# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
2. 安装启动 tomcat
# tar xf apache-tomcat-7.0.34.tar.gz -C /usr/local/
# ln -s /usr/local/apache-tomcat-7.0.34 /usr/local/tomcat
修改环境变量:
# vim /etc/profile
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
使环境变量生效:
# source /etc/profile
启动Tomcat:
# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.7.0_11
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
查看java端口(8080,8009,8005)
# netstat -tnlp |grep java
tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 6191/java
tcp 0 0 :::8009 :::* LISTEN 6191/java
tcp 0 0 :::8080 :::* LISTEN 6191/java
3. 访问测试 tomcat
http:192.168.122.83:8080
查看tomcat目录结构:
# tree -L 1 /usr/local/tomcat/
/usr/local/tomcat/ #tomcat的工作目录
├── bin #启动关闭命令
├── conf #配置文件
├── lib
├── LICENSE
├── logs #日志 catalina.out
├── NOTICE
├── RELEASE-NOTES
├── RUNNING.txt
├── temp
├── webapps #存网站(project--目录)的目录 默认网站为ROOT
└── work
4. 安装 mysql
#yum install mariadb mariadb-server -y
#systemctl start mariadb
5. 部署 jspgou
获取到 jspgouV6-ROOT.zip
# ls /usr/local/tomcat/webapps/ # 默认网站的基目录base
docs examples host-manager manager ROOT
# ls /usr/local/tomcat/webapps/ROOT # 默认网站的主目录
创建数据库:
在mysql数据库中创建jspgou数据库,字符集为utf-8
修改数据库密码(本实验为123,可选择其他方式修改)
# mysql
MariaDB [(none)]> use mysql;
MariaDB [(none)]> UPDATE user SET password=password('123') WHERE user='root';
MariaDB [(none)]> create database jspgou CHARACTER SET = utf8;
MariaDB [(none)]> flush privileges;
2.更改数据库链接并导入数据:
# unzip jspgouV6-ROOT.zip
ROOT DB
修改解压后的ROOT文件,添加密码
# vim ROOT/WEB-INF/config/jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/jspgou?characterEncoding=UTF-8
jdbc.username=root # 生产环境中必须用普通用户
jdbc.password=123
导入数据:
Mariadb数据库不会出现如下错误,可以直接导入
(使用mysql倒入数据时会出现执行sql语句过长问题,修改mysql配置文件my.cnf中max_allowed_packet参数为64m,默认为1m
导入数据库时如果报错:把所有datetime类型的字段默认值改成CURRENT_TIMESTAMP)
[root@tomcat DB]# mysql -uroot -p123 -D jspgou < jspgou.sql
6. 部署网站:
将程序解压后的ROOT文件夹拷贝到tomcat安装目录下的webapps文件夹下(删除原有ROOT目录)
系统管理后台登录:http://localhost:8080/jeeadmin/jspgou/index.do
用户名:admin 密 码:123456
# cp -r ROOT/ /usr/local/tomcat/webapps/
网页访问效果:
二、单机多实例部署(在上述实验基础上)
1. 在tomcat目录下创建三个实例目录,拷贝原来的conf,logs,temp,work到3个目录下
# mkdir /usr/local/tomcat/{instance1,instance2,instance3}
# cp -r /usr/local/tomcat/{conf,logs,temp,work} /usr/local/tomcat/instance1
2. 在 / 下创建网站基准目录,并拷贝ROOT目录
# mkdir /webapps
# cp -r /usr/local/tomcat/webapps/ROOT/ /webapps
3. 分别配置3个实例server.xml
# vim /usr/local/tomcat/instance1/conf/server.xml
修改端口8005为8091(8092/8093)
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->
<Server port="8091" shutdown="SHUTDOWN">
注释掉8080和8009的配置信息,添加下述配置(8081/8082/8083)
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改网站基准目录
<Host name="localhost" appBase="/webapps"
unpackWARs="true" autoDeploy="true">
4. 编写控制脚本
# vim /usr/local/tomcat/instance1/ins1.sh
#!/bin/bash
. /etc/init.d/functions
export CATALINA_BASE="/usr/local/tomcat/instance1" # 此处三个实例名称目录
case "$1" in
start)
$CATALINA_HOME/bin/startup.sh;;
stop)
$CATALINA_HOME/bin/shutdown.sh;;
restart)
$CATALINA_HOME/bin/shutdown.sh
sleep 5
$CATALINA_HOME/bin/startup.sh;;
esac
export JAVA_OPTS='-Xms64m -Xmx128m'
5. 启动测试
# /usr/local/tomcat/instance1/ins1.sh start
# /usr/local/tomcat/instance2/ins2.sh start
# /usr/local/tomcat/instance3/ins3.sh start
查看端口信息,分别进行页面访问测试
# ss -tnlp |grep :80 |column -t
三、负载均衡
安装 nginx
# vim /usr/local/nginx/conf/nginx.conf
http {
upstream tomcat_pool {
server 192.168.122.105:8081 weight=1 max_fails=2 fail_timeout=2;
server 192.168.122.105:8082 weight=1 max_fails=2 fail_timeout=2;
server 192.168.122.105:8083 weight=1 max_fails=2 fail_timeout=2;
server 192.168.122.105:8084 weight=1 max_fails=2 fail_timeout=2;
}
server {
location / {
proxy_pass http://tomcat_pool;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}