使用PM2+nginx部署python项目的方法示例
之前面我们使用uwsgi部署项目比较繁琐,本章节介绍使用pm2+nginx一键部署django项目
PM2的主要特性:
- 内建负载均衡(使用Nodecluster集群模块)
- 后台运行
- 0秒停机重载,我理解大概意思是维护升级的时候不需要停机.
- 具有Ubuntu和CentOS的启动脚本
- 停止不稳定的进程(避免无限循环)
- 控制台检测
- 提供HTTPAPI
- 远程控制和实时的接口API(Nodejs模块,允许和PM2进程管理器交互)
一、安装PM2
1、安装nodejs
sudoapt-getinstall-ynodejs
2、安装pm2
sudonpminstallpm2-g
二、使用PM2部署django项目
1、在django的根目录下创建一个start.sh文件
pythonmanage.pyrunserver0.0.0.0:9000
2、使用pm2启动本文件
pm2startstart.sh
3、查看服务启动情况pm2list
(django_env)root@iZ941w016mwZ:/etc/nginx#pm2list ┌───────┬────┬──────┬────────┬────────┬─────┬────────┬──────────┐ │Name│id│mode│status│↺│cpu│memory│ ├───────┼────┼──────┼────────┼────────┼─────┼────────┼──────────┤ │start│0│N/A│fork│online│690│0%│2.7MB│ └───────┴────┴──────┴────────┴────────┴─────┴────────┴──────────┘ Use`pm2show`togetmoredetailsaboutanapp (django_env)root@iZ941w016mwZ:/etc/nginx#
4、客户端连接ip地址:端口号(9000)
三、结合nginx设置代理到9000端口
1、先根据之前的方法安装好nginx
2、进入nginx的包文件(/etc/nginx)下修改nginx.conf
... server{ listen80; server_namewww.yst168.cnyst168.cnhttp://www.yst168.cn;#这里是你的域名 location/{ proxy_passhttp://localhost:9000;#代理到你的本地项目 } } ...
3、重启nginx服务器
sudoservicenginxrestart
四、关于pm2的基本命令补充
- pm2startapp.js#启动app.js应用程序
- pm2startapp.js-i4#clustermode模式启动4个app.js的应用实例
- pm2startapp.js--name=“api”#启动应用程序并命名为“api”
- pm2startapp.js--watch#当文件变化时自动重启应用
- pm2startscript.sh#启动bash脚本
- pm2list#列表PM2启动的所有的应用程序
- pm2show[app-name]#显示应用程序的所有信息
- pm2logs#显示所有应用程序的日志
- pm2logs[app-name]#显示指定应用程序的日志
- pm2flush
- pm2stopall#停止所有的应用程序
- pm2stop0#停止id为0的指定应用程序
- pm2restartall#重启所有应用
- pm2reloadall#重启clustermode下的所有应用
- pm2gracefulReloadall#Gracefulreloadallappsinclustermode
- pm2deleteall#关闭并删除所有应用
- pm2delete0#删除指定应用id0
- pm2scaleapi10#把名字叫api的应用扩展到10个实例
- pm2reset[app-name]#重置重启数量
- pm2startup#创建开机自启动命令
- pm2save#保存当前应用列表
- pm2resurrect#重新加载保存的应用列表
- pm2update#Saveprocesses,killPM2andrestoreprocesses
- pm2generate#Generateasamplejsonconfigurationfile
- pm2startapp.js--node-args="–max-old-space-size=1024"
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。