部署django

Posted pungchur

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署django相关的知识,希望对你有一定的参考价值。

添加uwagi配置文件

在你项目的根目录中创建mysite.xml(名字无所谓),或者创建mysite.ini,输入以下内容:

<uwsgi>    
   <socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 --> 
   <chdir>/data/project1</chdir> <!-- 项目路径 -->            
   <module>project1.wsgi</module>  <!-- mysite为wsgi.py所在目录名--> 
<!-- 因为是module(模块),所以用  .  表示下一级-->
   <processes>4</processes> <!-- 进程数 -->     
   <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir           = /opt/mysite
# Django‘s wsgi file
module          = mysite.wsgi
# the virtualenv (full path)
home            = /opt/venv
# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 1
# the socket (use the full path to be safe
socket          = 0.0.0.0:8000
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true

保存退出

安装nginx并配置nginx.conf文件

cd /home/downloads/
wget http://nginx.org/download/nginx-1.13.7.tar.gz
下载完解压
tar -zxvf nginx-1.13.7.tar.gz
解压完进入文件夹,执行编译安装
./configure
make
make install
nginx一般安装在/usr/local/nginx

为了防止意外,在***/conf/中备份一下nginx.conf文件 

cd /usr/local/nginx/conf/
cp nginx.conf nginx.conf.bak

打开这个配置文件,删除 所有内容,加入以下内容(括号太多,注释太多,简便操作,后期需要什么,就按照配置文件中的格式再往里面加)

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  www.i-sekai.site; #改为自己的域名,没域名修改为127.0.0.1:80
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一样
           uwsgi_param UWSGI_SCRIPT mysite.wsgi;  #wsgi.py所在的目录名+.wsgi(解释过了)
           uwsgi_param UWSGI_CHDIR /data/project1; #项目路径
           
        }
        location /static/ {
        alias /data/project1/static/; #静态资源路径
        }
         #媒体文件也要放在这里吧?
    }
}

 

在配置中(.conf)可能会出现错误,

/usr/local/nginx/sbin/nginx -t 测试配置文件是否正确
vim /usr/local/nginx/conf/nginx.conf 改写配置文件

 

最后,没有错误

cd /usr/local/nginx/sbin/
./nginx
此时,nginx已经启动了。

 

cd /data/project1/
uwsgi -x mysite.xml
配置生效
/usr/local/nginx/sbin/nginx -s reload

重启nginx,网站打开你的域名

ps:

一定要注意Uwsgi和Nginx配置文件里的项目路径和静态资源路径,填写正确了才能成功访问。不然会出现502错误。还有就是,修改Django文件和其它配置文件之后,一定要重启Uwsgi和Nginx,不然不生效。

停止uwsgi

ps -ef | grep uwsgi
killall -9 uwsgi

启动uwsgi

uwsgi -x mysite.xml

 重启nginx

/usr/lcoal/nginx/sbin/nginx -s reload

把nginx添加到环境变量中

cd /etc
vim profile
将PATH=$PATH:/usr/local/nginx/sbin添加到最后,wq。
source profile
nginx 可以直接使用,无需加前面的/usr/local/nginx/sbin

 

以上是关于部署django的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

Django REST框架--认证和权限

如何在 Django 中显式重置模板片段缓存?

使用 Django 模板作为片段

Django线上部署代码修改失效问题