部署需要的东西:
- 服务器一台能访问公网(阿里云 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文件路径>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于