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

版权声明:版权声明:本文为博主原创文章,转载请注明网址,谢谢 https://blog.csdn.net/Chenftli/article/details/90599068

【部署时走过的路】

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

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

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

2、supervisor

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

  • 启动supervisord的配置文件:

supervisord -c /yourpath/supervisord.conf
  • 查看supervisor的进程:
sudo ps -ef | grep supervisor
  • 启动supervisor进程:
sudo supervisorctl start processname
  • 重新加载supervisord配置文件(重新启动):
sudo supervisorctl reload
  • 查看当前运行进程列表:
sudo supervisorctl status
  • 在supervisord.conf中设置通过web可以查看管理的进程,加入以下代码(默认即有,user、password可以不用,取消注释即可)
[inet_http_server] 
port=9001
username=user      
password=123

  • 查看是否web有监听:
lsof -i:9001
  • 问题:kill掉supervisor进程后再次开启出现问题 Unlinking stale socket /tmp/supervisor.sock
    解决:
sudo unlink /tmp/supervisor.sock 
or
sudo unlink /var/run/supervisor.sock

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

sudo echo_supervisord_conf > /yourpath/supervisord.conf

3、nginx

  • 查看nginx的进程:
sudo ps aux | grep nginx
  • nginx的开启、停止、重启:
sudo nginx start
sudo nginx stop
sudo nginx -s reload
# <nignx>也可以替换成安装以后的可执行文件路径 
  • nginx的重载:
nginx -s reload
  • nginx的 -t 参数进行配置检查,查看实际调用的配置文件路径及是否调用有效
sudo nginx -t

4、gunicorn

  • 查看supervisor的进程:
sudo ps -ef | grep gunicorn
  • 问题:[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
  • curl查询公网出口ip:
curl myip.ipip.net
  • 问题:nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
  • 解决:查看80端口是否被占用,如果占用kill掉
sudo netstat -anp |grep 80

猜你喜欢

转载自blog.csdn.net/Chenftli/article/details/90599068
今日推荐