ubuntu基础环境配置
系统环境最好不要用最新的(18.04),稳定的是16.04(推荐)
nginx
JDK
以下环境根据自己需求安装
mysql
rabbitmq3.6及延迟队列
redis
环境安装参考
java项目主要相关情况
security + JWT 微服务系统,打包成 .jar 的形式
ubuntu中项目service的配置
将jar的执行命令写成ubuntu的service脚本,以便 systemctl 管理
journalctl命令大全
journalctl命令可以很方便的查看项目的日志
service的配置
1.进入system目录
cd /etc/systemd/system/
2.创建 .service 文件 例如: 您的项目名.service
以transfer.service为例 aliyun.service阿里云服务器系统自带
cp aliyun.service transfer.service
3.删除transfer.service所有内容,修改为
[Unit]
Description=transfer
After=syslog.target
After=network.target[Service]
User=root
Type=simple
[Service]
ExecStart=/usr/bin/java -jar /root/project/transfer.jar --spring.profiles.active=pro
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=transfer
[Install]
WantedBy=multi-user.target
根据自己项目情况修改
Description :项目描述
ExecStart :执行jar的命令
/root/project/transfer.jar jar包所在目录
--spring.profiles.active=pro 项目执行时运行哪一个yml配置文件
SyslogIdentifier :项目日志名称
其余的全部默认
启动service
systemctl start transfer.service
查看service状态
systemctl status transfer.service
停止service
systemctl stop transfer.service
查看service日志
journalctl -f -u transfer.service -n 1000
更多详细命令参考
linux journalctl 命令
nginx的配置
1.进入nginx配置目录
cd /etc/nginx/sites-enabled/
2.配置
server {
listen 80;
server_name xxx.xxx.com;
location /transfer {
proxy_pass http://localhost:8086/transfer;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
}
transfer :为项目名
8086 :为项目启动的端口号
通过脚本文件自动部署项目
根据项目运行环境在服务器安装相关环境
例:项目中用到 gradle,maven,git
- 在服务器安装环境
- gradle或者maven并配置好环境变量
- git
- 编写.sh脚本
创建server.sh,并赋予执行权限
#! /bin/bash
systemctl stop transfer.service #停止服务
cd /root/transfer/code/transfer #移动到目录,根据自己的情况来
git pull #拉代码,需要按装git,并配置
gradle clean bootjar #打包
cp -f /root/transfer/code/transfer/build/libs/transfer-*.jar /root/transfer/transfer.jar #复制到你的目录,这里根据自己的情况来
systemctl start transfer.service #启动服务
- 测试脚本
创建项目存放文件夹 /root/transfer/code
在code下 执行 git clone 项目地址,验证git是否正常执行
gradle clean bootjar 打包项目,测试打包是否成功。注意:gradle版本要与项目中使用的版本一致,否则打包可能失败
执行没有问题,则脚本可用。
网友评论