部署java项目,并且实现Nginx反向代理Tomcat服务器
安装tomcat
详细安装步骤可以参考我的另一篇文章:
部署TOMCAT及优化.
[root@maomao zhuzhu]# ls
apache-tomcat-8.5.16.tar.gz bootstrap01 ???.zip jdk-8u221-linux-x64.tar.gz
[root@maomao zhuzhu]# tar xf apache-tomcat-8.5.16.tar.gz -C /usr/local/
[root@maomao zhuzhu]# tar xf jdk-8u221-linux-x64.tar.gz -C /usr/local/
[root@maomao local]# mv apache-tomcat-8.5.16 tomcat
[root@maomao local]# mv jdk1.8.0_221 jdk
# 修改环境变量
[root@lnmp local]# vim /etc/profile
# 在最后一行添加
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
[root@maomao local]# source /etc/profile
[root@maomao local]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
打开tomcat 浏览器测试
部署java项目
上传java项目到服务器
修改java项目的yml文件 修改数据库信息
[root@lnmp resources]# vim application.yml
datasource:
url: jdbc:mysql://192.168.188.188:3306/manage?characterEncoding=utf-8
username: root
password: 123
driver-class-name: com.mysql.jdbc.Driver
执行java项目的sql语句
[root@lnmp db]# pwd
/home/java-demo/db
sql语句
/*
MySQL - 5.6.30-log : Database - test
*/
CREATE DATABASE IF NOT EXISTS `manage` DEFAULT CHARACTER SET utf8 ;
USE `manage`;
CREATE TABLE `user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL COMMENT '名字',
`age` INT(3) NOT NULL COMMENT '年龄',
`sex` CHAR(1) DEFAULT NULL COMMENT '性别',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
COMMIT;
# 在sql的目录登录mysql
[root@lnmp db]# mysql -uroot -p
mysql> source tables_ly_tomcat.sql;
Query OK, 1 row affected, 1 warning (0.01 sec)
Database changed
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
line 1
mysql> use manage;
Database changed
mysql> show tables;
+------------------+
| Tables_in_manage |
+------------------+
| user |
+------------------+
1 row in set (0.00 sec)
打包java项目
# 需要使用maven
# 首先安装maven
[root@maomao bin]# yum install -y maven
# 进入java项目目录
[root@maomao ~]# cd /home/zhuzhu/java-demo/
# 输入打包命令
[root@maomao java-demo]# mvn clean package -Dmaven.skip.test=True
mvn clean package -Dmaven.skip.test=True # 跳过单元测试
# 打包完成之后 目录里面会多出一个target目录
# 里面就会有打包的war包
将war包传入tomcat下的webapps
# 在tomcat的webapps目录下面新建一个java目录
[root@lnmp webapps]# mkdir java
# 修改tomcat主配置文件
[root@lnmp tomcat]# vim conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/usr/local/tomcat/webapps/java" path="" reloadable="true" />
</Host>
# 将war包移动到tomcat的webapps下面的java目录
[root@lnmp target]# mv ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/java/
# 最后将war包解压
[root@lnmp java]# unzip ly-simple-tomcat-0.0.1-SNAPSHOT.war
# 目录下会多出两个新文件
[root@lnmp java]# ls
ly-simple-tomcat-0.0.1-SNAPSHOT.war META-INF WEB-INF
重启tomcat
打开浏览器测试
项目成功部署
添加学生 测试mysql是否正常
查看数据库
mysql> select name from manage.user;
+--------+
| name |
+--------+
| 猫猫 |
+--------+
1 row in set (0.00 sec)
实现Nginx反向代理
具体实现拓扑图就是这样
在nginx服务器上配置nginx主配置文件
[root@lnmp bin]# vim /usr/local/nginx/conf/nginx.conf
在http下面添加服务池
upstream java {
server 192.168.188.188:8080 weight=1;
server 192.168.188.158:8080 weight=1;
}
然后在相应server下面的location添加proxy_pass反向代理
location / {
root html;
index index.html index.htm;
proxy_pass http://java;
}
- 轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器
- proxy_pass即是代理转发,在proxy_pass后面的url写入之前添加的服务池 名字为java
打开浏览器测试,并且查看两个tomcat的日志,来证明反向代理成功
利用域名访问浏览器
动态查看 tomcat的访问日志
[root@lnmp logs]# tailf /usr/local/tomcat/logs/catalina.out
188服务器
158服务器
刷新页面 两台服务器的日志都更新了 说明反向代理成功
数据也正常