zoukankan      html  css  js  c++  java
  • 用 nginx + uwsgi + django 搭建web网站过程总结

    1、设置云服务器

    • 在安全组设置开放80端口

    2 安装django

    2.1安装pip

    sudo apt install python-pip -y
    

    2.2 安装django

    sudo pip install django ==1.9
    

    3.修改django项目应用设置

    3.1.目录结构修改:创建静态目录static地址

    • 在setting.py文件中下面的设置:
    STATIC_URL = '/static/' # 添加app的静态文件地址,绝对地址和相对地址都可以
    
    STATICFILES_DIRS = [     "/home/ubuntu/(django应用名称)/(django项目名)/static" ] # 统一的静态文件地址 
    
    STATIC_ROOT = os.path.join(BASE_DIR, "static/")
    
    • 配置好后,我们Xshell命令行中的/home/ubuntu/(django应用名称)目录下执行以下语句完成整合:
    python manage.py collectstatic
    

    3.2 公网访问配置

    • 在setting.py中修改输入:
    DEBUG = False  
    
    ALLOWED_HOSTS = ['*']
    

    3.3 测试修改

    • 在Xshell命令行中的/home/ubuntu/(django应用名称)目录下输入:
    python manage.py runserver 0.0.0.0:8888
    
    • 成功运行后在浏览器中输入:http://IP:8888 进行测试,可以进行正常功能即可进行下一步。测试后按ctrl+c关闭测试进程。

    4.部署uwsgi

    4.1 安装uwsgi

    sudo pip install uwsgi
    

    4.2 创建uwsgi配置文件

    • 在(django应用)文件夹下,与manage.py同级的目录下创建.ini格式的配置文件,例如:Test_uwsgi.ini
    sudo touch Test_uwsgi.ini
    

    4.3 编辑uwsgi配置文件

    #Test_uwsgi.ini file
    [uwsgi]
    # uwsgi监听的socket,一会儿配置Nginx会用到
    socket = 127.0.0.1:8000
    # 在app加载前切换到该目录,设置为Django项目根目录
    chdir           = /home/ubuntu/(django应用名称)
    # 加载指定的python WSGI模块,设置为Django项目的wsgi文件
    module          = (django应用名称).wsgi
    # 启动一个master进程来管理其他进程
    master          = true
    # 工作的进程数
    processes       = 4
    # 每个进程下的线程数量
    threads = 2
    # 当服务器退出的时候自动删除unix socket文件和pid文件
    vacuum          = true
    # 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器
    daemonize = /home/ubuntu/(django应用名称)/uwsgi.log
    

    4.4 测试安装是否成功

    • 创建test.py文件
    #test.py文件输入如下:
    
    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return ["success!"] 
    
    • 在test.py目录下输入:
    uwsgi --http :8000 --wsgi-file test.py
    

    4.5 启动uwsgi

    • 切换到/home/Ubuntu/(django应用名称)/目录下,输入:
    uwsgi --ini (django应用名称)_uwsgi.ini
    

    4.6 关闭uwsgi

    sudo killall -9 uwsgi
    

    5.部署nginx

    5.1 安装nginx

    sudo apt-get install nginx  # 安装
    

    5.2 启动nginx测试是否安装成功

    • 启动nginx
    /etc/init.d/nginx start  # 启动
    

    5.3 编辑nginx配置文件

    5.3.1.:下载配置文件:nginx.conf到本地

    5.3.2.:打开配置文件,在Http内创建server子项如下:

    server {
        listen         8888; # 设置监听端口号
        server_name    XXX.XXX.XXX.XXX; # 设置对外访问入口,可以是域名可以是IP地址,我设置的是IP 
        charset        UTF-8;  # 设置访问的语言编码
        access_log     /var/log/nginx/(django应用名称)_access.log; # 访问日志记录
        error_log      /var/log/nginx/(django应用名称)_error.log;  # 错误日志记录
    
        location / {   # 设置虚拟主机的基本信息
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000; # 刚才uwsgi设置的socket
            uwsgi_read_timeout 2;
        }   
        location /static {   # 静态文件设置,nginx自己处理
            expires 7d;      # 过期时间
            alias /home/ubuntu/(django应用名称)/static/;  # 项目静态文件地址
         }
     }
    

    5.3.3.:把编辑好的配置文件传输到 /home/ubuntu/ 目录下

    5.3.4.:将其替换原来的配置文件,执行如下命令:

    sudo cp -f /home/ubuntu/nginx.conf /etc/nginx/ 
    

    5.4 启动nginx服务

    • 切换到/home/Ubuntu/(django应用名称)/目录下,输入命令:
    /etc/init.d/nginx start  # 启动
    #备注:启动nginx之前,需要先把uwsgi启动。
    
    

    5.5 检查nginx配置文件

    sudo nginx -t  #检查配置文件
    

    5.6 nginx一些操作命令

    /etc/init.d/nginx start  # 启动
    
    /etc/init.d/nginx restart #重启
    
    /etc/init.d/nginx stop #关闭
    
    pkill -9 nginx   #关闭
    
  • 相关阅读:
    图片懒加载原生写法。
    ES6新声明
    下拉刷新上拉加载
    angular动画
    angular路由切换后 轮播以及iscrollJs失效的问题
    ui-route多级嵌套时的默认显示。
    iscroll.js的基本布局
    angular ng-route和ui-route
    require.js JQ
    Cookie&Session
  • 原文地址:https://www.cnblogs.com/jasontang369/p/9390933.html
Copyright © 2011-2022 走看看