目录
- 1.maven打包jar
- 2.Linux上传maven包 和 activemq队列 和 redis缓存
- 3.使用nohup命令运行jar
- 问题: jar包部署在Linux上后浏览器访问不到的问题
1.maven打包jar
首先需要把pom.xml的packaging标签设置为jar,packaging这个标签决定了使用maven快捷打包 是打包成war包还是jar,打包成war需要使用tomcat,而jar包不需要tomcat吗,但是需要jdk。
在把需要打包的项目clear一下,把不需要的文件清理掉。
在点击package把项目打包成你需要的包
你会发现你项目会多一个target目录,里面就有打包的项目包。
2.Linux上传maven包 和 activemq队列 和 redis缓存
我使用的是EditPlus连接linux客户端并且把文件上传到服务器。
我这个项目需要activemq队列所以把gz的安装包上传到linux中,jar包的上传也是这样。
回到linux控制台找到上传的目录并且通过tar把文件解压。
activemq启动分linux-x86-32和linux-x86-64进入对应的目录,我的是64位的
进入后通过 ./activemq start 启动 (注意./ 后面不能有空格)
Redis缓存上传: 下载同款
验证码:p1xv
解压:
tar -zxvf redis-3.2.8.tar.gz
解压后进入到文件夹在输入make回车:前提需要有gcc环境
这样就成功了
进入到src下通过./redis-service 启动redis的服务端
这样服务端就启动了,但是这个窗口就不能输入其他命令,能不能设置成后台运行redis呢?
可以看到如果我们启动redis服务的话,每次都要进入到安装目录,这样是不是很繁琐,所以我们将redis做成一个服务,我们直接启动。
首先将utils/redis_init_script文件复制到/etc/init.d下,同时易名为redis。执行命令
cp /usr/local/redis/redis-3.2.8/utils/redis_init_script /etc/rc.d/init.d/redis
然后在执行命令,vi/etc/rc.d/init.d/redis,并在文档第二行添加# chkconfig: 2345 80 90。如果/usr/local/redis/bin中没有redis-server和redis-cli文件的话,我们要在我们的安装目录下复制一个过来。否则服务启动时找不到redis-server。下图第二个红框所示。并且在第三个$EXEC $CONF 后边加一个&,表示让redis作为后台服务启动,否则该服务会独占输入屏。
然后进入到redis的src中把下面2个文件夹复制到指定的目录下,这个指定目录看上图第二个框框。
可以看到在/etc/init.d/redis文件中有这么一行:CONF="/etc/redis/${REDISPORT}.conf"。于是将redis配置文件拷贝到/etc/redis/下 。
mkdir /etc/redis
cp /usr/local/redis-3.0.2/redis.conf /etc/redis/6379.conff
完成上面的操作之后,即可注册服务:
chkconfig --add redis
然后启动redis服务
service redis start
出现这个问题
那么就删除就行
rm -rf /var/run/redis_6379.pid
我到这里就成功了:可以通过service redis start 启动
和 service redis stop 关闭
这样我们就将redis服务注册好了,但是如果你测试一下service redis stop ,你会发现他提示/var/run/redis_6379.pid does not exist, process is not running 这说明在run下没有这个文件,我们进入到/var/run下发先真的没有这个文件,但是有redis.pid文件。
我们我们要将/etc/rc.d/init.d/redis 文件中的redis_${REDISPORT}.pid修改为redis.pid。
这样我们重启服务后,在用该命令关闭就可以了。到这里我们的redis服务就安装好了,并做好了一个服务。
以上就是Linux下安装Redis的全过程,希望对大家安装Redis有所帮助。
3.使用nohup命令运行jar
回到上传jar包的目录通过命令:
java -jar 项目名称
启动完成后会有端口号:我这里是8280
本地访问是ip:8280 但是我的不能访问,有可能是linux端口没有打开。
注意:使用java -jar 项目名称 运行只要连接断开项目就不能访问,如何解决:可以通过
nohup : 后台启动 log-$(date +%Y-%m-%d).log 2>&1 & :输出日志,日志位置会在jar包的目录中
nohup java -jar 项目名称 >> log-$(date +%Y-%m-%d).log 2>&1 &
这样就运行成功!
补充:需要注意的是运行后日志文件是log-2021-12-06.log的格式,并且日志是在项目的同一目录显示,将来时间久了就会产生很多日志信息这样会运行我们查看其他文件,我们打算把日志存放到log文件夹中去
我们只需要在命令前面添加目录:./log
改造命令:nohup java -jar 项目名称 >> ./log/log-$(date +%Y-%m-%d).log 2>&1 &
运行后日志就创建在了log目录里面
如果需要关闭!
查看进程
通过kill -9 进程号 关闭部署的项目
问题: jar包部署在Linux上后浏览器访问不到的问题
有可能是防火墙没有被放行,项目使用的是8280那么就需要放行端口,设置 /etc/sysconfig/iptables添加下面这行
- 是否安装了iptables包:/etc/sysconfig/iptables是否存在
- jdk环境是否正确配置
- 保证程序是正常运行的
步骤
编辑/etc/sysconfig/iptables文件加入应用端口的白名单
vi /etc/sysconfig/iptables
如果没有这个文件通过yum安装
yum install iptables-services
进入之后添加
-A INPUT -P tcp -m state --state NEW -m tcp --dport 8280 -j ACCEPT
保存退出
Ctrl+c //退出编辑模式
:wq
重启防火墙
systemctl restart iptables
运行jar包项目
java -jar 程序名.jar
在浏览器访问
198.xxx.xxx.xxx:8280/index.html
IP地址:8280/index.html
注意:如果加载不出来,可能是没有安装iptables包,检查一下防火墙状态,安装命令在最上面。
开放的端口号为jar指定端口号,默认8080