【部署时走过的路】
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