zoukankan      html  css  js  c++  java
  • django+nginx+uwsgi的生产环境部署(Ubuntu16.04)

    一,准备工作:

    代码一定要能本地跑起来!

    各种基础包的安装略默认已经安装python3,nginx,uwsgi等基础依赖,注意版本问题。

    本地setting.py文件修改如下(改为生产模式,把debug关闭,添加host和静态文件地址):

     项目目录内随便什么地方新建一个uwsgi.ini配置文件:

    # dongpouu_uwsgi.ini file
    [uwsgi]
    
    # Django-related settings
    
    socket = :8000
    #真实服务的端口
    
    # Django项目根目录 (绝对路径)
    chdir           = /home/dongpouu
    
    # wsgi.py文件在项目中的位置
    module          = dongpouu.wsgi
    
    # process-related settings
    # master
    master          = true
    
    # 运行的进程数
    processes       = 1
    
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true

    然后打一个zip包,通过ftp上传到服务器,注意上传路径要与uwsgi.ini内的地址一致:

    然后在项目根目录,运行一条命令来收集静态文件(因为在生产模式下,django不会再自动管理静态路径。后面会通过配置交给nginx来管理):

    python3 manager.py collectstatic

    配置nginx。在/etc/nginx/目录下,找到nginx.conf文件,用vim打开它,然后在http{ }内部加入下面内容。这不是唯一的配置方式,其他的也试过很多坑,最终这一种成功!、

    server {
            #这里是nginx用到的端口,注意不要与django的搞混了,所有配置里边只有这个端口是与其他地方不一样的!!!
            listen       80;
            server_name  dongpouu.com;
    
            charset UTF-8;
            #这块存让日志文件
            access_log  /var/log/nginx/dongpouu_access.log;
            error_log   /var/log/nginx/dongpouu_error.log;
    
            location /static/ {
                autoindex on;
                alias /home/dongpouu/static/; #这里按照自己的实际情况来,包括下面的
            }
    
            location /media/ {
                autoindex on;
                alias /home/dongpouu/media/;#这里按照自己的实际情况来,包括下面的
        } 
        client_max_body_size 75M;
        location
    / {
          include uwsgi_params;
    #同uwsgi内容
          uwsgi_pass 127.0.0.1:8000; #链接超时时间
          uwsgi_read_timeout 30; }
    }

    最后三条命令,部署生效(失败的自己排查肯定是配置问题):

    killall -9 uwsgi # 杀死正在运行的uwsgi服务
    uwsgi --ini dongpouu_uwsgi.ini # 注意要cd到该文件对应目录下,这条命令成功代表django项目顺利跑起来了!

    service nginx reload # 重新加载nginx

    最后访问www.dongpouu.com(你自己的网址,或者直接访问服务器的公网IP)看效果。

  • 相关阅读:
    Nginx的启动、停止与重启
    linux环境下安装nginx步骤
    关于Nginx的负载均衡
    【Nginx】实现动静分离
    nginx中的反向代理
    Nignx的简介
    ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint 'orderite
    mysql出现“ You can't specify target table '表名' for update in FROM clause”解决方法
    SpringMvc的工作原理图
    【Java多线程】Java中的13个原子操作类(十九)
  • 原文地址:https://www.cnblogs.com/thinheader/p/9363417.html
Copyright © 2011-2022 走看看