直接开工,这里的uwsgi启动方式是通过uwsgi命令读取ini格式的文件内容,请耐心阅读,内容不多
分别安装django,nginx,uwsgi,我的django和nginx是apt-get 安装的,uwsgi是pip 安装的,系统环境是ubuntu 16.04
默认你的项目可以用命令:python manage.py runserver 0.0.0.0:8000运行起来
(记得把调试模式关闭,允许所有ip访问),就是settings文件里的下面两行,没有就添加,
DEBUG = False ALLOWED_HOSTS = ["*",]
项目目录新建文件uwsgi.ini,内容如下,别偷懒,代码全抄进去,下面要用。
回到项目目录运行命令:uwsgi --ini uwsgi.ini(启动uwsgi服务)
浏览器登录192.168.1.103:8000/....(别学我省略url),网页能访问,但静态图片,js.css加载不了,要进行下面第2大步才可以正常加载图片
附常用命令:
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
pid文件记录的是uwsgi进程号,也是用uwsgi命令读取文件的内容而已,没什么神奇的!
1.修改nginx.ini的文件,改为用socket服务,注释掉http服务
;ip:端口(使用nginx连接时,使用socket) socket=127.0.0.1:3400
2.收集静态文件,项目目录setting文件最后添加下面的额几行代码
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR,"static") ] STATIC_ROOT='/var/www/daily/'
回到系统根目录新建文件目录:sudo mkdir /var/www/daily
配置权限:sudo chmod 777 /var/www/daily
回到项目目录下运行命令:python manage.py collectstatic
收集不了,问问自己项目目录下有static(js,css,images放里面的)文件夹吗?,
收集成功的看看/var/www/daily有没有你项目的文件,只要看图片!
3,修改/etc/nginx/sites-enabled/default文件,server内添加或修改。
server{
listen 80;
server_name 127.0.0.1;
charset utf-8;
client_max_body_size 75M;
location /static {
alias /var/www/daily/; (上面收集的静态文件目录)
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3400; (要和上面的socket端口一致)
}
}
4.修改
/etc/nginx/nginx.conf
文件用户的权限,其它不要动
文件内修改,没有就添加: user root
5.检测nginx.conf的配置:命令如下
cd /etc/.init.d/nginx
sudo nginx -t
出错自己查看下错误提示,没错会有ok的提示的
6.重启uwsgi:记得stop再启动,出错瞪大眼睛看清楚命令吧
7.启动nginx,直接nginx start如果无效的,看下图,要加路径!
附送常用命令:(start和reload前记得要检测下nginx.conf配置是否正确,上面5有提到)
停止:sudo /etc/init.d/nginx -s stop
重启:sudo /etc/init.d/nginx -s reload
因为default配置的监听端口是80,所以现在访问不用加端口号了,直接192.168.1.103/...
8.supervisor进程管理(进程监控自动重启)
1.安装:pip install supervisor
注释uwsgi.ini文件的
;daemonize=uswgi.log
2.创建默认配置文件
echon_supervisord_conf >/etc/supervisord.conf
3.修改文件:
vi /etc/supervisord.conf
最后一行添加或修改
[include]
files = /etc/supervisor/conf.d/uwsgi_start.ini
4.创建进程管理配置文件
mkdir /etc/supervisor/conf.d/uwsgi_start.ini