最近独立负责开发一个项目,从零到一,正好给自己一个很好的机会做技术方面的全面总结。今天整理的内容是实操Linux服务器配置Jdk和Tomcat并部署启动JAVA WEB项目。里面的知识也是我从技术大牛写的博客或帖子里学习到的,这里针对自己的实际情况做个整理,如有冒犯请联系删除。话不多说,进入正题。
一、linux服务器版本
华为云服务器 CentOS 8
二、下载安装Jdk
1.下载:从oracle官网直接下载Jdk是很慢的,我把我已经下载的分享出来。
百度网盘:https://pan.baidu.com/s/1JTtCaISCVIaNPwe982nSyw
提取码:1688
2.安装:
2.1通过WinSCP工具在服务器/usr目录下创建自己的目录,我创建的目录名称是bonwin;
2.2把下载的jdk通过WinSCP工具上传到服务器/usr/bonwin下;
2.3用WinSCP工具里自带的putty打开命令终端,进入到bonwin目录下执行tar --zxvf jdk-8u161-linux-x64.tar.gz,将文件解压到当前目录下,当前目录里会增加一个jdk1.8.0.161目录;
2.4在/etc/profile文件中添加下面配置:
export JAVA_HOME=/usr/bonwin/jdk1.8.0_161
export PATH=PATH
export CLASSPATH=.:JAVA_HOME/lib/tools.jar
2.5在命令终端输入命令:java -version来验证安装是否成功,出现下图信息证明安装成功。
三、下载安装tomcat
如果部署的是jar文件,服务器可以不用安装tomcat;如果部署的是war文件,是需要安装tomcat的。我自己选择在服务器上部署jar文件,所以就没有在服务器上安装tomcat。网上看到大牛整理的CentOS8安装tomcat,很详细,在这里学习引用下。引用地址:https://blog.csdn.net/weixin_38883338/article/details/106656917
四、Intelij IDEA 用maven打jar包
在IDEA的maven窗口中依次执行clean和package命令,在项目中的target目录下可以看到最终打包项目生成的jar。
五、springboot多环境配置
在项目开发中经常有开发环境、测试环境、预发布环境、生产环境,而且一般这些环境配置会各不相同,手动改配置麻烦且容易出错,这是多环境配置就很必要。
配置方式:application.properties里配置通用信息,根据实际有的环境来创建对应环境的配置文件application-dev.properties、application-pro.properties,通过application.properties中配置spring.profiles.active=pro来指定应用启动后加载对应的application-pro.properties。 (application-{profile}.properties) 会默认按照配置(spring.profiles.active=profile)加载相应的配置文件。application-{profile}.properties可作为application.properties的扩展配置,如有相同配置项,application-{profile}.properties会覆盖application.properties的配置。
注意:在打jar包部署前要设置好application.properties中的spring.profiles.active=pro
六、部署启动应用
1.上传打好的jar包到服务器,可以通过WinSCP直接窗口操作,目标目录可自行设定,我是放在了/usr/bonwin/javaweb目录下;
2.命令终端中使用cd 命令进入javaweb目录下,应用命令 nohup java -jar xxx.jar启动项目
3.验证项目是否启动成功:
4.这一步我遇到一个小问题:8080端口无法访问
原因:由于公司用的是华为云服务器,任何端口号在使用前都需要在安全组注册;
解决方法:管理员登录华为云管理平台在安全组中注册8080端口号,然后直接连接服务器设置永久添加端口号例外
七、CentOS8防火墙配置命令汇总
1.systemctl使用
systemctl unmask firewalld #执行命令,即可实现取消服务的锁定
systemctl mask firewalld # 下次需要锁定该服务时执行
systemctl start firewalld.service #启动防火墙
systemctl stop firewalld.service #停止防火墙
systemctl reloadt firewalld.service #重载配置
systemctl restart firewalld.service #重启服务
systemctl status firewalld.service #显示服务的状态
systemctl enable firewalld.service #在开机时启用服务
systemctl disable firewalld.service #在开机时禁用服务
systemctl is-enabled firewalld.service #查看服务是否开机启动
systemctl list-unit-files|grep enabled #查看已启动的服务列表
systemctl --failed #查看启动失败的服务列表
2.firewall-cmd使用
firewall-cmd --state #查看防火墙状态
firewall-cmd --reload #更新防火墙规则
firewall-cmd --state #查看防火墙状态
firewall-cmd --reload #重载防火墙规则
firewall-cmd --list-ports #查看所有打开的端口
firewall-cmd --list-services #查看所有允许的服务
firewall-cmd --get-services #获取所有支持的服务
3.区域相关
firewall-cmd --list-all-zones #查看所有区域信息
firewall-cmd --get-active-zones #查看活动区域信息
firewall-cmd --set-default-zone=public #设置public为默认区域
firewall-cmd --get-default-zone #查看默认区域信息
firewall-cmd --zone=public --add-interface=eth0 #将接口eth0加入区域public
4.用例
firewall-cmd --add-port=80/tcp --permanent #永久添加80端口例外(全局)
firewall-cmd --remove-port=80/tcp --permanent #永久删除80端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(全局)
firewall-cmd --zone=public --add-port=80/tcp --permanent #永久添加80端口例外(区域public)
firewall-cmd --zone=public --remove-port=80/tcp --permanent #永久删除80端口例外(区域public)
firewall-cmd --zone=public --add-port=65001-65010/tcp --permanent #永久增加65001-65010例外(区域public)
firewall-cmd --query-port=8080/tcp # 查询端口是否开放
八、部署过程中用到的其他linux命令
1.查看所有端口号和进程id netstat -tunlp
2.关闭进程 kill -9 pid