django+uwsgi+nginx部署

在前面的文章曾记录过如何在同一局域网中访问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修饰的网页了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值