您的位置:首页 > 运维架构 > Nginx

django+uwsgi+nginx部署

2018-03-04 13:24 253 查看
在前面的文章曾记录过如何在同一局域网中访问Django开发的网站,现在写一下如何将django和nginx+uwsgi放到一起,下面就用我写的一个微信公众号的目录为例吧。



创建的项目名:weixin
app:weixin_app
位置:/root/weixin

uwsgi

在/root/weixin/weixin/中新建一个文件uwsgi.ini
[uwsgi]
socket = :8000 #端口号
chdir = /root/weixin #django项绝对路径
module = weixin.wsgi #wsgi.py文件在项目中的位置
master = true #允许主进程存在
processes = 4 #进程数
vacuum = true #当服务器退出的时候自动清理环境,删除unix socket文件和pid文件
保存之后可以在测试一下是否成功,在终端与行
uwsgi --ini /root/weixin/weixin/uwsgi.ini
然后在浏览器打开127.0.0.1:8000,是否可以打开自己的项目,如果可以代表uwsgi配置完毕。

nginx

配置nginx.conf(位置可以通过find / -name nginx.conf查找),vim nginx.conf
server {        listen       80 default_server;        listen       [::]:80 default_server;        server_name  127.0.0.1 120.79.129.221;        root         /usr/share/nginx/html;        # Load configuration files for the default server block.        include /etc/nginx/default.d/*.conf;        location / {        # 同uwsgi连接        include uwsgi_params;        # uwsgi.ini中开放端口        uwsgi_pass 127.0.0.1:8000;        }
    }
保存后启动uwsgi(uwsgi --ini /root/weixin/weixin/uwsgi.ini),然后启动nginx(systemctl start nginx)。
然后在浏览器输入自己的ip地址或者域名即可打开网站。

静态文件的处理

如果你的网站可以打开了但是如果你打开admin会发现页面无法加载css,这时我们就需要对django的静态文件进行处理
首先,修改django的setting.py文件
DEBUG = False #关闭开发者功能
STATIC_ROOT = os.path.join(BASE_DIR, '../weixin/static') #‘../weixin/static’是你想保存把网站中用的css和js保存的位置,可以自己定义修改完setting.py后保存,然后在终端中运行
python3 manager.py collectstatic
,将django中需要的css和js等数据收集后存放到static_root定义的文件夹中。
然后,修改urls.py,添加
from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这里的意思是在DEBUG=True时,会解析
/static/
文件,文件存放的位置是第二个参数。
如此一来当即在部署为生产环境时,只需要吧DEBUG改为False,Django就不会去处理
static
了。
最后再次配置nginx.conf
在server中添加
location /static/ {
        autoindex on;
        alias /root/weixin/static/; # 静态文件存放的位置
    }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {

        }
还有最容易被忽视的一个步骤修改nginx.conf 顶部uesr,修改为:
user root
保存nginx.conf后
重新启动uwsgi和nginx,这时就可以打开经过css修饰的网页了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: