目录
- 序
- 工具准备
-
- 环境安装及配置
- serverjre(或jdk)安装及配置
- mysql安装及配置
- Tomcat 安装及配置
- 项目部署
- 上传war包至服务器
- tomcat无法启动常见问题
- 去除端口号和目录名访问项目
- 项目无法连接mysql常见问题
- 项目中数据乱码
- 将 tomcat 加入 systemctl 服务设置开机自启动
- 稍做优化
-
序
本篇记录在centos7.3上部署web项目的全流程及一些问题的解决方案
工具准备
putty安装及使用
pscp安装及使用
-
pscp可用来在windows与linux间传输文件,可在PuTTY官网下载安装
-
windows上传文件至linux
pscp .\dev.war root@xxxx.xx.xx.xx:/usr/deva/downloads
windows从linux下载文件
pscp -r root@xxxx.xx.xx.xx:/usr/src "D:/test"
上述操作针对文件无需 -r,针对目录需要加 -r
root是你的用户名,xxxx.xx.xx.xx为你的服务器ip
环境安装及配置
serverjre(或jdk)安装及配置
- serverjre可去oracle官网下载,可在linux中wget下载,也可以windows上下载好通过pscp上传至服务器
- 解压tar.gz
tar -zxvf serverjre-9.0.4_linux-x64_bin.tar.gz -C /opt/serverjre --strip-components 1
–strip-components N 可以去除压缩文件的N级目录 - 配置环境变量
vim /etc/profile 添加下列配置# serverjre config
export JAVA_HOME=/opt/serverjre
export JRE_HOME=${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# end serverjre config
- 测试
source /etc/profile
上述命令使配置生效,java -version 测试是否成功
mysql安装及配置
- 在mysql官网下载对应的yum源安装包
- 参考A Quick Guide to Using the MySQL Yum Repository安装即可
- 上述过程如果想用yum-config-manager可用如下命令安装
yum -y install yum-utils
- 配置远程连接数据库
授权远程连接 GRANT ALL PRIVILEGES ON *.* TO root@"1.1.1.1" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
1.1.1.1为你要授权的ip,如果不限制ip,则为 “%”
重载授权表FLUSH PRIVILEGES;
查看授权select user,host from mysql.user;
- 云服务器安全组配置
授权成功后仍不能远程连接,需要配置安全组规则
这边使用的是阿里云,去阿里云控制台给实例添加安全组规则
选择协议类型为mysql 3306 (此处为默认配置,如果你的端口改变,请选择自定义)
授权对象为你想要授权的ip,如果不限制,则为 0.0.0.0/0 - 如果添加规则后,仍然报上述错误,检查服务器防火墙
查看防火墙是否开启systemctl status firewalld
如果开启,关闭防火墙查看是否可连接,判断是否是防火墙的问题systemctl stop firewalld
如果是防火墙的问题且需要开启防火墙,请配置防火墙规则
Tomcat 安装及配置
- 从tomcat官网下载对应版本
- 解压
tar -zxvf apache-tomcat-9.0.16.tar.gz --strip-components 1 -C /opt/tomcat
- 去tomcat的bin目录启动tomcat
cd /opt/tomcat/bin
./startup.sh
- 外部尝试访问tomcat根目录,无法访问,添加安全组规则
授权外部访问8080端口
开启防火墙的配置开放8080端口 - 配置tomcat管理员页面权限
cd /opt/tomcat/conf
vim tomcat-users.xml
取消底部role 及user的注释,按需配置角色
三个rolename 分别对应tomcat
在未配置前可点击进去会出配置教程,按需配置
server status 页面可查看服务器当前资源使用情况
manager app 页面可查看当前session,可部署项目(直接上传文件部署)
项目部署
上传war包至服务器
tomcat无法启动常见问题
去除端口号和目录名访问项目
项目无法连接mysql常见问题
- 检查项目中mysql用户名密码是否正确
- 连接数据库的url如果是通过服务器的ip(包括127.0.0.1)连接
需要在安全组/防火墙中配置3306端口授权该ip
需给mysql对应用户名在此ip授权
- 如仍未解决,参考此文章,未验证是否有效
- 如果再不行就别坚持了,localhost多好?
项目中数据乱码
将 tomcat 加入 systemctl 服务设置开机自启动
- 在 tomcat/bin 目录下创建 setenv.sh 文件添加
JAVA_HOME=/opt/java
CATALINA_PID=$CATALINA_BASE/temp/tomcat.pid # 如不需要请忽略
tomcat启动时会创建pid文件存储tomact进程id,该路径可自定义
此处耽误两三天,可能是tomcat 9 bug,无法生成pid文件,调试catalina.sh时CATALINA_PID的重定向输出并没有执行,更换为tomcat 8.0.53 之后正常生成。为了避免后续问题,也已将jdk换为1.8版本。此处如果不是必须使用pid文件可忽略,因为公司项目需要使用此pid文件,所以耽误两三天来处理此问题。 - 在 /etc/systemd/system 目录下创建 tomcat.service 添加
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
CATALINA_PID=/opt/tomcat/temp/tomcat.pid
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
PrivateTmp=True
User=root
Group=root
[Install]
WantedBy=multi-user.target
之后就可以使用systemctl start tomcat # 启动tomcat
systemctl stop tomcat # 停止tomcat
systemctl status tomcat # 查看tomcat状态
systemctl enable tomcat # 设置开机启动tomcat
systemctl is-enabled tomcat # 查看tomcat是否开机自启动
systemctl disable tomcat # 关闭开机自启动
稍做优化
参考tomcat优化详细教程
jvm参数优化
vim /opt/tomcat/bin/catalina.sh
第一行添加
set JAVA_OPTS='-server -Xms1024m -Xmx1024m'
-server 启用服务器模式,提升性能
-Xms 初始内存
-Xmx 最大内存
二值根据服务器配置设置,建议二值相等,避免在GC后调整堆大小带来的压力
开启线程池
vim /opt/tomcat/bin/server.xml
取消红框的注释
根据服务器配置调整
maxThreads="800" # 线程池最大线程数
minSpareThreads="100" # 最小线程数
maxQueueSize="100" # 最大等待数
给Connector指定线程池
Connector 关键属性
maxConnections="800" # 并发请求数
acceptCount="200" # 最大等待数
神器APR
参考CentOS安装配置APR
安装依赖
yum install apr-devel apr apr-util
安装tomcat-native
yum install tomcat-native
配置环境变量
vim /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
source /etc/profile
配置成功重启tomcat可见
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)