服务器管理项目

perfey项目服务器修改代码注意事项:
1,静态文件是有nginx响应的,所有的app下的static文件夹都由python3 manage.py collectstatic收集到了指定目录
2,所以项目中的media和files这些包含大文件的内容不应放到static中
3,nginx的上传文件大小是有限制的,需要在nginx 配置中改client_max_body_size  2000m;  #最大限制为2000M
4,修改完代码后
	1) 杀死nginx,uwsgi,supervisor 这些进程 , 查看进程 ps -ef|grep uwsgi  netstat -tulpn|grep :80   杀死进程 kill -9 进程号
	2) 使用 Python3 manage.py runserver 0.0.0.0:8000单独开启django程序,看是否有bug,能否正常运行
	3) 开启nginx  在/opt/nginx1-12 目录下执行    sbin/nginx
	4) 开启uwsgi  在/home/perfey 项目目录下执行  
		uwsgi --uwsgi 0.0.0.0:8002 --chdir=/home/perfey  --module=perfey.wsgi  
	   测试nignx + uwsgi是否正常 在浏览器输入 www.perfey.top,成功后ctrl +c 关闭uwsgi
	5) 使用supervisor管理Python程序 
	   开启supervisor    supervisord -c /etc/supervisord.conf
	   如果报错 Unlinking stale socket /tmp/supervisor.sock  执行unlink /tmp/supervisor.sock命令即可
报这个错unix:///tmp/supervisor.sock refused connection 执行supervisord -c /etc/supervisord.conf 启动项目 supervisorctl -c /etc/supervisord.conf start perfey,如果显示已经启动改为重启 restart
nginx 添加rtmp-model模块时注意服务器要开放 1935端口,配置文件见代码 websocket是没有跨域的问题的,所以不用考虑跨域,直接发请求进行了 uwsgi --uwsgi 0.0.0.0:8002 --chdir=/home/perfey --module=perfey.wsgi master = true processes = 5 socket=/home/perfey/perfey.sock 可以考虑,写两个服务程序,一个使用nginx + uwsgi 另一个使用django自带的uwsiref,然后前后端分离,这样添加功能就不必再原项目上改了,只需该前端的请求地址就行了,当然服务程序要使用端口号区分开来

  

引用博客:https://www.cnblogs.com/laifu/p/3633063.html
supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop groupworker: ,重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启
 
 
 
 vim /etc/supervisord.conf
 
 # 在supervisord配置文件中加入以下内容
[program:perfey]
command=/usr/local/python3/bin/uwsgi --uwsgi 0.0.0.0:8002 --chdir=/home/perfey  --module=perfey.wsgi
directory=/home/perfey
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true

[program:chat]
command=python3 manage.py runserver 0.0.0.0:8006
directory=/home/test_dwebsocket
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true

#配置完后再重新加载
supervisorctl reload

  

# nginx.conf 文件
#websocket
#不搞了,弄不了
#搞了几天也没配好websocket的nginx,不过也有收获, 
#一般http请求是  nginx ->   uwsgi  -> django
#websocket也是这样  nginx  -> uwsgi -> django (nginx可以配置请求了,当请求路由是/chat/ws/时,就走下面的地址 59.110.140.100:8002,然后更改请求协议变为websocket),可是怎么传给uwsgi是个事,我就是卡在这了
location  /chat/ws/{      
include /opt/nginx1-12/conf/uwsgi_params;
#uwsgi_pass unix:/home/perfey/perfey.sock;
proxy_pass http://59.110.140.100:8002;
#proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}

  

原文地址:https://www.cnblogs.com/perfey/p/10028655.html