• uwsgi


    之前对于django的部署写过一个csdn,但是有人说太过笼统,不够细致,这一篇关于django部署在uwsgi和nginx的详细介绍,希望可以帮助大家,

    使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下django项目生产环境的部署

    准备条件:

    1.确保有一个能够用runserver正常启动的django项目,即命令:python manage.py runserver

    2.项目已上传到linux,并且已部署好python环境,且已安装好项目所需的模块

    Uwsgi的安装:

    1.安装命令:pip3(因为我用的是python3.5.2)  install  uwsgi

    2.在django项目的同一级目录下创建一个uwsgi.ini文件,创建命令:sudo vi uwsgi.ini

    3.在uwsgi.ini中编辑配置信息如下:

    chdir = /home/python/Desktop/django_test/fang        # 指向了项目目录,我这里的fang是项目
    module = fang.wsgi                                                    # 项目名称.wsgi
    master = true
    processes = 10
    chmod-socket = 664
    vacuum = true
    socket = 127.0.0.1:8001                                             # 这个是被访问地址,十分重要,因为后续的nginx访问后端链接地址就是                                                                                      这个地址,而不是http地址,必须注意,否则nignx的log就会显示以下错误:

    upstream prematurely closed connection while reading response header from upstre    am, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "uwsgi://127.0.0.1:8080", host: "127.0.0.1"


    http = 127.0.0.1:8080
    max_execution_time = 300s
    uwsgi_connect_timeout = 300s
    plugin=python
    proxy_http_version 1.1
    proxy_set_header Connection ""
    pythonpath = ~/.virtualenvs/django_py3/lib/python3.5.2/site-packages/

    4.配置完成后进行这个uwsgi所在的目录下,通过命令:uwsgi --ini uwsgi.ini进行项目启动,成功后如下显示:

    5.访问http地址(127.0.0.1:8080,根据自己的实际地址)可以访问到项目页面就是成功配置uwsgi和django了

    如下图,我的测试项目返回了预先写好的hello1

    Nginx的安装:

    1.通过命令sudo apt-get install nginx来安装nginx

    2.进行nginx的安装成功与否的测试,默认是80端口,本机IP是127.0.0.1

    /etc/init.d/nginx start --启动

    /etc/init.d/nginx stop --关闭

    /etc/init.d/nginx restart --重新启动

    3.配置 *.conf文件,这个文件的名字随意,我习惯于使用项目名称,也有人喜欢使用nginx.conf,我是用fang.conf这样的好处是进行项目区别,和默认的nginx的区别

    (1):进行项目目录下,通过命令sudo vi fang.conf创建fang.conf文件

    (2):进行fang.conf文件的配置如下:

               注意:①以下的路径,大家按照项目的实际绝对路径写就可以了

                          ②以下的upstream django的配置中的地址要和刚才在uwsgi.ini中的socket配置一致,否则就会出现我说过的那种错误,好多人出了那个错误,却不知道问题的根源在这里,尤其是初学者

        

    4.通过命令sudo ln -s /home/python/Desktop/django_test/fang/fang.conf  /etc/nginx/conf.d 进行软连接,

    5,通过命令:/etc/init.d/nginx restart 重启nginx服务器,然后通过80端口访问,可以得到对应的数据信息,说明配置成功了,如下图的80端口的显示:

    注意::

    以上配置成功了,如果你的nginx开启时出现了如下错误:

    那说明fang.conf配置文件有错误,具体错误可以查看log,先进入到/var/log/nginx/目录下,然后打开log,sudo vi error.log文件产看错误原因,当然也有可以能是/etc/nginx/sites-enabled文件中进行软连接,可以进行删除里边的*.conf文件,或者con.d文件夹下的default文件没有删除,具体还需要查看log,还有其他问题,欢迎留言!

     
    ————————————————
    版权声明:本文为CSDN博主「fsj818077」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/fsj818077/article/details/85243145

  • 相关阅读:
    [android] 获取系统的联系人信息
    [android] 内容观察者
    [nodejs] nodejs开发个人博客(六)数据分页
    [android] 插入一条记录到系统短信应用里
    [android] 短信的备份
    [android] 内容提供者实现
    [android] 内容提供者简介
    [nodejs] nodejs开发个人博客(五)分配数据
    [android] 常用数据适配器SimpleAdapter
    [android] 常用数据适配器ArrayAdapter
  • 原文地址:https://www.cnblogs.com/flintlovesam/p/12250229.html
Copyright © 2020-2023  润新知