• Centos7部署django+uwsgi+nginx


    Django + uwsgi + nginx on Centos7

    安装 python3.9

    查看:教程

    看完上面的教程后,创建一个虚拟环境,在虚拟环境中安装 django, uwsgi

    django 设置

    首先,将 django 项目放到 linux 服务器上。设置 django 项目的配置文件:/root/blog_site/blog/settings.py (这是本文项目配置文件的地址, blog_site 是项目文件夹)

    修改 settings.py 中的如下三个参数:

    DEBUG = False          # 关闭调试模式
    
    ALLOWED_HOSTS = ['*']  # 允许其他主机连接
    
    STATIC_ROOT = BASE_DIR / 'static'  # 添加这个变量,用来收集所有的静态资源
    

    执行:

    python manage.py collectstatic 
    

    将项目中所有用到的静态文件,统统收集到 STATIC_ROOT 定义的文件夹中,这样,nginx 就可以直接访问这个目录,来访问静态资源。

    Nginx 配置

    nginx 安装和基础了解,查看:教程

    简单配置:

    /usr/local/nginx/conf/nginx.conf

    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
        
        upstream django {         # 定义一组服务器池
            server 0.0.0.0:8082;  # 使用这个地址和 uwsgi 通信
        }
    
        server {
            listen       80;
            server_name  ip_address;  # 这里填写你自己服务器的 ip 地址
    
            charset    utf-8;
            gzip on;
            gzip_disable "msie6";
            gzip_proxied any;
            gzip_min_length 1k;
            gzip_comp_level 4;
    
            access_log  logs/host.access.log;
            
            location /media  {
                alias /root/mysite/media;  # 指向 django 的 media 目录(绝对路径)
            }
            location /static  {
                alias /root/blog_site/static;  # 指向 django 的 STSTIC_ROOT 目录(绝对路径)
            }
    
            location / {
                uwsgi_pass django;   # 设置 uWSGI 的地址
                include /usr/local/nginx/conf/uwsgi_params;  # 包含进来的 uwsgi 配置
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }
    
    

    重新加载 ngnix 设置:

    # 先进入你 nginx 安装目录的 sbin 下
    ./nginx -s reload
    

    uwsgi 配置

    在 python 虚拟环境下安装 uwsgi

    创建 /root/blog_site/uwsgi.ini: (注意这个配置文件,放到了 django 项目的根目录)

    [uwsgi]
    # 项目的绝对路径,定位到项目的第一层
    chdir           = /root/blog_site
    # 指明 django 项目的 wsgi.py 文件路径
    module          = blog.wsgi
    # 指明你的 python 虚拟环境的目录
    home            = /root/Envs/venv
    # 指明通过uwsgi,启动多少个进程
    processes       = 5
    
    # 如果你已经配置了nginx(启动了nginx服务,配置了uwsgi_pass),请用这个socket连接
    # socket 的值,一定要和 nginx 配置的地址一模一样!
    socket          = 0.0.0.0:8082   # 使用这个,将下面的http注释掉
    
    # 如果你没用nginx,想通过uwsgi直接启动web服务,指明http协议
    #http = 0.0.0.0:9999
    
    # 在退出uwsgi环境后,清空环境变量
    vacuum          = true
    

    执行命令:

    cd /root/blog_site
    
    uwsgi --ini uwsgi.ini  # 运行 uwsgi
    

    完成,此时在浏览器访问:linux服务器的ip ,应该就能访问你的 django 网站了。

    这也是我参考了很多教程后写出来的,但也只能算是一个 demo,不能面向复杂的实际场景,尤其是 nginx 的配置。

  • 相关阅读:
    Java 日志
    编写用例文档
    uml用例关系
    地址线和数据线
    Android总结
    DbUtil数据库连接
    PropertiesUtil
    log4j.properties配置
    自定义博客样式
    css给文字加下划线
  • 原文地址:https://www.cnblogs.com/wztshine/p/16172154.html
Copyright © 2020-2023  润新知