flask框架写的个人blog,supervisor+nginx+gunicorn部署躺过的坑总结一:部署问题及一些命令

举报
橙子园 发表于 2022/05/26 00:12:29 2022/05/26
【摘要】 【部署时走过的路】 1、linux用户、用户组相关的命令。 将创建的虚拟环境的所有者改为当前用户: sudo chown -R your_username:your_username path/to...

【部署时走过的路】

1、linux用户、用户组相关的命令。

  • 将创建的虚拟环境的所有者改为当前用户:
sudo chown -R your_username:your_username path/to/virtuaelenv/

  
 
  • 1

对linux用户、用户组不熟悉的同学。尽量使用root账户,避免好多麻烦。

2、supervisor

  • 安装完supervisor后有三个可用的命令行:echo_supervisord_conf、supervisord 、supervisorctl,作用分别是生成supervisord配置文件、管理(启动等)supervisord配置文件、管理(启动、停止、重新加载等)supervisor工作进程。

  • 启动supervisord的配置文件:

supervisord -c /yourpath/supervisord.conf

  
 
  • 1
  • 查看supervisor的进程:
sudo ps -ef | grep supervisor

  
 
  • 1
  • 启动supervisor进程:
sudo supervisorctl start processname

  
 
  • 1
  • 重新加载supervisord配置文件(重新启动):
sudo supervisorctl reload

  
 
  • 1
  • 查看当前运行进程列表:
sudo supervisorctl status

  
 
  • 1
  • 在supervisord.conf中设置通过web可以查看管理的进程,加入以下代码(默认即有,user、password可以不用,取消注释即可)
[inet_http_server] 
port=9001
username=user      
password=123


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 查看是否web有监听:
lsof -i:9001

  
 
  • 1
  • 问题:kill掉supervisor进程后再次开启出现问题 Unlinking stale socket /tmp/supervisor.sock
    解决:
sudo unlink /tmp/supervisor.sock 
or
sudo unlink /var/run/supervisor.sock

  
 
  • 1
  • 2
  • 3

supervisor生成指定路径的配置文件:

sudo echo_supervisord_conf > /yourpath/supervisord.conf

  
 
  • 1

3、nginx

  • 查看nginx的进程:
sudo ps aux | grep nginx

  
 
  • 1
  • nginx的开启、停止、重启:
sudo nginx start
sudo nginx stop
sudo nginx -s reload
# <nignx>也可以替换成安装以后的可执行文件路径 

  
 
  • 1
  • 2
  • 3
  • 4
  • nginx的重载:
nginx -s reload

  
 
  • 1
  • nginx的 -t 参数进行配置检查,查看实际调用的配置文件路径及是否调用有效
sudo nginx -t

  
 
  • 1

4、gunicorn

  • 查看supervisor的进程:
sudo ps -ef | grep gunicorn

  
 
  • 1
  • 问题:[ERROR] Connection in use: (‘0.0.0.0’, 8000)
    解决:已启动的gunicorn进程或其它进程占用了8000端口,kill掉即可。

5、测试url是否通

  • curl是强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具
    使用curl返回状态码:
curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com

  
 
  • 1
  • curl查询公网出口ip:
curl myip.ipip.net

  
 
  • 1
  • 问题:nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  • 解决:查看80端口是否被占用,如果占用kill掉
sudo netstat -anp |grep 80

  
 
  • 1

文章来源: blog.csdn.net,作者:橙子园,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Chenftli/article/details/90599068

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。