Django 项目部署(uwsgi+nginx)

本文介绍如何使用uwsgi和nginx部署Django项目,并配置静态文件。包括uwsgi的安装与配置、nginx的安装与配置,以及如何正确配置静态文件。

1,安装uwsgi

pip install uwsgi

1.1 uwsgi 的配置

项目部署时,需要把settings 文件下的改成下面

DEBUG=FALSE
ALLOWED_HOSTS=['*']

1.1.1 在项目目录下,新建一个uwsgi配置文件uwsgi.ini

[uwsgi]
#使用nginx连接时使用
socket = 127.0.0.1:8080
#直接做web服务使用
http = 127.0.0.1:8080
#项目目录
chdir=/user/web/item/(自己的项目绝对路径)
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=item/wsgi.py
#指定启动的工作进程数
processes=4
#指定工作进程中的线程数
threads=2
master=True
#保存启动之后主进程的pid
pidfile=uwsgi.pid
#设置uwsgi后台运行,uwsgi.log保存日志信息
daemonize = uwsgi.log
#设置虚拟环境的路径
virtualenv=/user/web/

 1.2 uWSGI基本命令:

启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid

 2. 安装nginx

pip install nginx

 2.1 修改nginx 配置文件   打开/etc/nginx/nginx.conf文件

server {
    listen         80; 
    server_name    127.0.0.1 
    charset UTF-8;
    access_log      /var/log/nginx/myweb_access.log;
    error_log       /var/log/nginx/myweb_error.log;
 
    client_max_body_size 75M;
 
    location / { 
        #连接uwsgi
        include uwsgi_params;
        #和uwsgi socket一致
        uwsgi_pass 127.0.0.1:8080;
        uwsgi_read_timeout 2;
    }   
    location /static {
        #连接项目所有静态文件
        #静态文件放置地址
        alias /home/myweb/nginx/static/;
     }
 }

 2.2 nginx 命令

service nginx start   #启动
service nginx stop    #停止
service nginx reload  #重启

 3. 静态文件收集,上面nginx配置静态文件有一个问题,就是上面的目录/home/myweb/static只是我们自己的静态文件的目录,你登录admin后发现admin页面的样式都丢失了。因为django自带的admin的静态文件路径没有导入。所以就需要新建一个文件夹,我的是/home/myweb/nginx/static,然后执行命令把整个项目的所有静态文件都收集到这个目录下,再修改下上面的配置。

3.1 新建文件夹 /home/myweb/nginx/static/

3.2 修改settings.py文件,添加STATIC_ROOT

STATIC_ROOT='/home/myweb/nginx/static/'    #添加收集静态文件的目录
STATIC_URL = '/static/'
STATICFILES_DIRS=(
os.path.join(BASE_DIR,'static'),   
)

3.3 执行收集命令

python manage.py collectstatic

 3,4  修改nginx配置

 location /static {
               alias /home/myweb/nginx/static;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值