zoukankan      html  css  js  c++  java
  • uwsgi 启动django

    1, django 官方文档可配置项如下:

    2,启动django 的配置:

      1,和settings.py 同级目录下新建wsgi.py  (该配置和manager.py 的配置基本是一样的)

    import os
    
    from django.core.wsgi import get_wsgi_application
    
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "projectName.settings")
    
    application = get_wsgi_application() 
    

      2,和manager.py同一级 创建启动文件projectName_uwsgi.ini  (建议这样命名)

    [uwsgi] 
    chdir = /home/project# 你的项目目录
    # home = /home/mysite_env # 如果有虚拟环境,则需要指定虚拟环境目录; 没有则注释掉
    module = projectName.wsgi:application  
    # 指向自己Django项目目录下projectName目录下的wsgi文件 (上面的wsgi.py)
    master = True 
    processes = 4  
    # 使用进程数  threads = 2 使用的线程数
    harakiri = 60  
    # 最大超时时间
    max-requests = 5000  
    # 最大请求数,到了后就会自动重启
    socket = 127.0.0.1:8000  
    # socket连接地址和端口,和nginx配置一致,
    # http = 127.0.0.1:8000 不使用nginx这样配置
    pidfile = /home/projectName/master.pid # 在失去权限前,将pid写到指定的pidfile文件中 daemonize = /data/log/uwsgi/uwsgi.log # 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器, 不配置日志就是前台运行,部署测试时可以先注释掉 # chmod-socket = 664 # 如果没有权限访问uWSGI的socket,这里可以设置权限 vacuum = True # 服务退出或重启,自动删除pid和socket文件
    # home = /home/python/.virtualenvs/env_name
    # 如果有虚拟,指定使用的虚拟环境

      3,启动命令: uwsgi --ini  projectName_uwsgi.ini 

        停止命令: uwsgi --stop master.pid

        重启命令:uwsgi --reload master.pid

     4, nginx + uwsgi + django  部署

      1,前面的uwsgi 单独部署不变,需要修改uwsgi.ini 的服务为 socket = 127.0.0.1:8000 (不使用http = 127.0.0.1:8000)

      2,配置nginx  (保存后使用nginx -t 检查是否配正确)

    server {
            listen       8800;        #给外部访问的端口
            server_name  localhost;      # 给外部访问的ip或域名
            root         /usr/share/nginx/html;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
            # 包含uwsgi请求的参数
            include uwsgi_params;    #uwsgi 使用自带,固定配置不变
            # 转交请求给uwsgi服务器 (uwsgi服务器的ip和端口号)
            uwsgi_pass 127.0.0.1:8000;  # 单个uwsgi服务器(不需要负载均衡)
            #uwsgi_pass upstream1;  #需要配置负载均衡时再配置upstream
                }
    
                # 如果是静态资源请求就直接响应资源。
            location /static {
            # 指定静态文件存放的目录 (需要修改/var/...目录的操作权限。 $ chmod 777 /var) 
            alias /var/project/project/static_all;    # 静态文件所在的目录 (下面有静态文件收集方式)
           }

      2,django 搜集静态文件:

        1,再settings.py 中配置收集静态文件的路径

    STATIC_ROOT = os.path.join(BASE_DIR, 'static_all')  # 两种方式都可以 (django中推荐使用)
    STATIC_ROOT = '/var/static' 

        2,使用命令 python3 manager.py collectstatic   (收集django所有的静态文件到我们配置的地方)

          收集后如下:

      

      这个静态文件的地址就是上面nginx配置的静态文件地址

      3, 重启nginx , 访问是否正常:

        nginx -t        检查nginx 配置是否正确, 可看到配置文件

        nginx -s reload      不重启nginx 重新加载配置文件

        nginx -s stop      停止nginx

        systemctl status nginx.service   查看nginx 的状态

         

    注意事项:

      1,如果不搭配nginx 要配置 http = 127.0.0.1:8000 , 不能使用socket = 127.0.0.1:8000

      2,在配置wsgi.py时,要和manager.py 的指定项一样 (os.environ.setdefault("DJANGO_SETTINGS_MODULE", "projectName.settings.dev")) ,可以指定不同的配置文件

     

  • 相关阅读:
    avalon如何用年月日的方式输出..
    做一个倒计时的功能,天,时,分 /时,分,秒
    avalon用background-image不起作用,怎么来选取前几个的图片进行渲染
    获取地址栏的参数的两种方法?
    mac屏幕录制
    数据可视化
    vscode 插件
    git 命令 总结
    jest
    react admin
  • 原文地址:https://www.cnblogs.com/wjun0/p/14335835.html
Copyright © 2011-2022 走看看