zoukankan      html  css  js  c++  java
  • Django_uwsgi_nginx_centos_笔记

    Django_uwsgi_nginx_centos_笔记

    转载注明来源: 本文链接 来自osnosn的博客,写于 2020-05-19.

    我用的版本:

    • Django-2.1
    • uWSGI-2.0.18

    通过 pip3 安装 Django, uwsgi

    • 用的python3.6,装好虚拟环境。
    • 创建虚拟环境。
    • 启动虚拟环境。
    • pip3 install Django
    • pip3 install uwsgi

    Django 本地运行测试

    • 如果修改了程序,暂时不使用 uwsgi 启动。可以直接用python3运行。
    python3 manage.py runserver
    python3 manage.py runserver 5000  #指定端口
    # 按 CTRL-C 就退出了。
    

    配置参考,ini 和 xml 内容一样,任意选用一款即可

    • uwsgi-config.ini
    [uwsgi]
    #内部端口,自定义
    socket=127.0.0.1:8228
    #项目路径
    chdir=/mydata/py3/proj
    #home=/mydata/py3
    pidfile=airport.pid
    # module 指向 AIRPORT/wsgi.py
    module=AIRPORT.wsgi
    #module=AIRPORT.wsgi:application
    master=true
    #进程数
    processes=3
    #日志文件
    daemonize=uwsgi.log
    #指定静态文件映射
    static-map=/mydir/static=/mydata/py3/proj/static
    
    • uwsgi-config.xml
    <uwsgi>
       <socket>127.0.0.1:8228</socket><!-- 内部端口,自定义 -->
       <chdir>/mydata/py3/proj/</chdir><!-- 项目路径 -->
       <pidfile>/mydata/py3/proj/airport.pid</pidfile>
       <module>PROJNAME.wsgi</module> <!-- 指向PROJNAME/wsgi.py -->
       <master>1</master>
       <processes>3</processes> <!-- 进程数 -->
       <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
       <static-map>/mydir/static=/mydata/py3/proj/static</static-map><!-- 静态文件映射 -->
    </uwsgi>
    
    
    • nginx.conf, location{ },
    # 需要 path('/djg/hello',hello.main)
    location ^~ /djg/ {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8081;
    }
    

    关于 ALLOWED_HOSTS

    • ALLOWED_HOSTS = ['localhost','127.0.0.1','mydomain.com'] 这样,本地运行,部署上站,都OK。

    关于静态目录 STATIC_URL=

    • 在 settings.py 中,这个变量可以随便设置,但最好两头都带 '/' 号,否则会有说不清的问题(我没搞明白)。
      • STATIC_URL='/mystatic/'
      • STATIC_URL='/mydir/mystatic/'
      • 以上两种设置,本地运行runserver 都没有问题。
      • 但以 uwsgi 执行时 (DEBUG=True), 有可能不行。就需要在 urls.py 中加入两行。
    urlpatterns = [ .... ]  #在这句之后添加两行
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    urlpatterns += staticfiles_urlpatterns()
    

    在 templates目录内 html 模板文件中使用 static 目录

    {% load static %}
    <img src="{% static "img.jpg" %}">
    

    在 py 程序中使用 STATIC_URL 变量

    from django.conf import settings
    html='<img src="{static}img.jpg">'.format(static=settings.STATIC_URL)
    

    关于静态文件目录

    (Django 2.1 , uWSGI 2.0.18)

    • 本地测试运行(runserver),用 Django 自己提供的静态文件支持。需要设置 DEBUG=True
    • 部署到网站
      • 可以继续用 Django 自己提供的静态文件支持,需要保留设置 DEBUG=True。但debug打开了不安全,且性能比较差。
        Django的返回头多出x-frame-options: ,uwsgi没有。
      • 可以用 uwsgi 提供的静态目录映射支持,性能稍好。设置 Django 的 DEBUG=False 不影响这个映射。也能工作。
        uwsgi 的静态映射,见上面的 uwsgi 配置中 static-map 项。
      • 用 nginx 或 apache 来提供静态文件。这个方法是推荐的,也是性能最好的。

    转载注明来源: 本文链接 来自osnosn的博客.

  • 相关阅读:
    MVC3+Spring.net+NHibernate+ExtJs的简单架构
    WCF初见之Salt+Hash加密
    演讲时经常用到的几个小工具介绍
    2asp.net mvc 4 in action
    Hadoop简介和实践分享
    PyMongo非关系型数据库mongodb入门
    网络资源定位(Url)的奥秘
    ApplicationPoolIdentity
    CustomBehavior 入门
    架构培训
  • 原文地址:https://www.cnblogs.com/osnosn/p/12916395.html
Copyright © 2011-2022 走看看