视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Ubuntu14.04的部署实例介绍
2020-11-27 14:23:37 责编:小采
文档


第一步。

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 = )

  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):
 start_response('200 OK', [('Content-Type','text/html')])return ["Hello World"]

运行:

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[uwsgi]

 socket = 127.0.0.1:3400# Django-related settings
 # the django project directory (full path)
 chdir = /home/ubuntu/mysite
 # Django's wsgi filemodule = mysite.wsgi

 # process-related settings
 # master
 master = true# maximum number of worker processes
 processes = 2threads = 2max-requests = 6000# ... with appropriate permissions - may be neededchmod-socket = 6# clear environment on exit
 vacuum = true

访问时报错,invalid request block size: 21573 (max 4096)...skip

原因是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 {
 # the port your site will be served on
 listen 80;
 # the domain name it will serve forserver_name 127.0.0.1; # substitute your machine's IP address or FQDNcharset utf-8;

 # max upload size
 client_max_body_size 75M; # adjust to taste

 # Django media
 location /media {
 alias /home/ubuntu/mysite/media; # your Django project's media files - amend as required }

 location /static {
 alias /home/ubuntu/mysite/static; # your Django project's static files - amend as required }

 # Finally, send all non-media requests to the Django server.
 location / {
 include uwsgi_params; # the uwsgi_params file you installed
 uwsgi_pass 127.0.0.1:8001;#此处跟uwsgi配置文件保持一致
 }
}

记得修改测试时的uwsgi.ini的配置。

第八步,运行

重启nginx,运行uwsgi.

大功告成

暂时到此,后续继续补充nginx、django、uwsgi的知识。

大多配置来源于百度搜索,就不一一贴各个出处了。人生苦短。

下载本文
显示全文
专题