部署需要的东西:
- 服务器一台能访问公网(阿里云 or 腾讯云) 建议用轻量应用服务器
- 域名
- xshell sftp 远程登录工具
首先服务器要配置 ssh 服务,然后本地能远程登录上去。
以上准备好之后,使用 xftp 把项目从本地拷贝到服务器上。
1.python flask 项目本身就是基于一个 web 服务器运行,因此可以直接在服务器上跑项目,
采取后台运行方式 nohup 命令(这样当你把远程 ssh 登录窗口关闭了也还能运行)运行了项目之后,用 nginx 反向代理一下就行。当然要配置服务器的数据库,项目里面的数据库账号密码要与服务器上一致,数据的话 可以在本地把数据库导出 sql 文件,然后服务器上运行 sql 文件。
需要注意的是:
nginx 监听的端口要打开。一般监听 80 或者 443 端口 80/443 通常默认打开的。
2.java 项目通常是打包为 war 包 or jar 包,然后拷贝到服务器上。
然后服务器上使用后台运行命令:
[root@iZ2ze boy]# nohup java -jar xxxxx.jar > xxxxxlog.file 2>&1 &
当返回一个数字,就表示成功,然后使用 nginx 反向代理。
4.java 项目注册为系统服务 自动化部署 shell 脚本
#!/bin/sh
#chkconfig:2345 80 90(这个作用是为了可以把服务加入到 chkconfig list中去)
#description:系统服务脚本
echo 请输入服务名:
read mylove
echo "你输入服务名是:${mylove}"
echo 请输入jar包位置:
read PATH_TO_JAR #打包好的jar包位置
echo "你输入的jar包位置是:${PATH_TO_JAR}"
read PID_PATH_NAME #进程号文件
echo "你输入的进程号文件位置是:${PID_PATH_NAME}"
case $1 in
start)
echo "Starting $SERVICE_NAME ..."
if [ ! -f $PID_PATH_NAME ]; then
nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is already running ..."
fi
;;
stop)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stoping ..."
kill $PID;
echo "$SERVICE_NAME stopped ..."
rm $PID_PATH_NAME
else
echo "$SERVICE_NAME is not running ..."
fi
;;
restart)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stopping ...";
kill $PID;
echo "$SERVICE_NAME stopped ...";
rm $PID_PATH_NAME
echo "$SERVICE_NAME starting ..."
nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is not running ..."
fi
;;
status)
status)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME is running, pid=$PID"
else
echo "$SERVICE_NAME is not running..."
fi
;;
esac
最后给该 shell 脚本增加执行权限
chmod -R 775 <这个shell文件路径>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于