Django项目部署

Django项目部署:


 settings.py
       ALLOWED_HOSTS = ['服务器ip',]  
 python manage.py runserver 0.0.0.0:8001
 
 Django遵循的wsgi协议:wsgiref性能低
 正式部署采用uwsgi,性能较高  pip3 install uwsgi
 WSGI是一种通信协议。
 uwsgi是一种线路协议,常用于在uWSGI服务器与其他网络服务器的数据通信。
 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。

uwsgi配置Django静态文件:

# 不处理静态文件
    uwsgi --http :9002 --chdir /data/s4/deploy --wsgi-file deploy/wsgi.py --master --processes 4 --threads 2     
    # --http :9002 监听的端口
    # 当前Django程序在linux上的目录
    # deploy/wsgi.py     wsgi在Django上的目录
    
    
    
    
    # 处理静态文件
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR,'static'),
    )
    STATIC_ROOT = os.path.join(BASE_DIR,'uuuuuu')    #  这个文件可以放置在任何位置,写入路径即可
    python manage.py collectstatic  在Django程序里执行,将内置和和开发的静态文件打包收集    
    完事,注释静态配置STATICFILES_DIRS,STATIC_ROOT    
    # 处理静态文件启动
    uwsgi --http :9003 --chdir /data/s4/deploy --wsgi-file deploy/wsgi.py --static-map /static=/data/s4/deploy/uuuuuu
    
    # /static=/data/s4/deploy/uuuuuu   这个是收集的静态文件的路径    
    # 或者;写一个配置文件
    wsgi_http.ini
        [uwsgi]
        http = 0.0.0.0:9004
        chdir = /data/s4/deploy
        wsgi-file = deploy/wsgi.py
        # processes = 4
        # threads = 2
        static-map = /static=/data/s4/deploy/uuuuuu
    uwsgi wsgi_http.ini  启动Django程序

Nginx正向代理静态文件:

Nginx正向代理静态文件
    在Django程序写一个配置文件,使Nginx和Django采用socket连接    
    wsgi_socket.ini
        [uwsgi]
        socket = 127.0.0.1:8001  # 监听本地的8001端口,和ngix进行socket连接
        chdir = /data/s4/deploy
        wsgi-file = deploy/wsgi.py
        # processes = 4
        # threads = 2
        static-map = /static=/data/s4/deploy/uuuuuu
    uwsgi wsgi_socket.ini  启动Django程序
    
    
    yum install nginx
    vim /etc/nginx/nginx.conf  配置代理文件    
        server {
            listen: 80;  监听的端口
            location /staice {
                alias  /data/s4/deploy/uuuuuu  # uwsgi打包的静态文件绝对路径
            }  
            location / {
                uwsgi_pass  django;   #  配置文件上面的upstream django {xxxx}监听的端口
                include     uwsgi_params;
            }        
        }
    然后启动Nginx,/etc/init.d/nginx   start    
    /etc/init.d/nginx      start 启动ngix(/stop/restart    停止或者重启)
原文地址:https://www.cnblogs.com/domestique/p/7714652.html