第一步。 sudo apt-get update sudo apt-get upgrade 先更新。。 Django的主流部署方式:nginx uwsgi django 第二步,安装nginx sudo apt-get install nginx 安装nginx,如果需要安装最新的nginx需从官网下载源码包进行手动编译。 nginx的大致文件结构。 1.配置文件:/etc/nginx 2.程序:/usr/sbin/nginx 3.日志:/var/log/nginx/access.log - error.log 第三步,安装uwsgi sudo apt-get install python3-dev sudo apt-get install python3-pip sudo pip3 install uwsgi(此步之前,可以换下pip源以提高下载速度。在~/.pip下创建pip.conf写入 [global] trusted-host = pypi.douban.com index-url = http://pypi.douban.com/simple) uwsgi是一个web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。 大致流程是 : 客户端<==>nginx<==>uwsgi<==>Django。静态请求由Nginx自己处理。非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求。 创建Django测试项目,django-admin startproject mysite,cd mysite,python manage.py startapp demo1。 第四步,测试uwsgi 在mysite目录下新建测试文件,nano test.py. 写入: def application(env, start_response): 运行: uwsgi --http :8001 --plugin python --wsgi-file test.py 访问正常。 第五步,测试Django python manage.py runserver 0.0.0.0:8002 访问正常。 连接Django和uwsgi。 uwsgi --http:8001 --plugin python --module mysite.wsgi 访问正常。 第六步,配置uwsgi uwsgi支持通过多种配置文件形式启动,这里采用ini配置文件的方法. 新建uwsgi:nano uwsgi.ini # mysite_uwsgi.ini file 访问时报错, 原因是url地址超过4096个字符,原因是我们是用socket的方式启动,将配置文件的socket改为http即可,或者修改buffer-size。 (建议不做修改,测试时改为http即可,等连接nginx时,改回到socket) daemonize = /home/ubuntu/mysite/uwsgi.log 正式运行时将这句代码加入到uwsgi.ini文件中,访问日志就会后台输出到uwsgi.log 此时django已经能访问。 第七步,配置nginx 修改nginx的默认配置文件/etc/nginx/sites-enabled/default server { 记得修改测试时的uwsgi.ini的配置。 第八步,运行 重启nginx,运行uwsgi. 大功告成 暂时到此,后续继续补充nginx、django、uwsgi的知识。 大多配置来源于百度搜索,就不一一贴各个出处了。人生苦短。 |
|