服务器管理项目
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 ""; }