Django+uwsgi+nginx+Ubuntu(二)
Django +Nginx+uwsgi(基于Ubantu系统)(二)
文章目录
前言
提示:上一章我们讲了一些基础和nginx的安装和一些简单的命令。朋友们还需要自学一些ubuntu版本的命令
提示:以下是本篇文章正文内容,下面案例可供参考
一、uwsgi
我们装完nginx,接下来就是uwsgi,这些都是pyth的第三方包所以直接使用
pip install uwsgi安装即可
1.测试uwsgi
在你的项目的根目录下创建test.py文件
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
然后运行下面的代码运行uwsgi
uwsgi --http :8000 --wsgi-file test.py
当然,我们也可以换成别的端口,但是切记要去服务器控制台打开相关端口号,然后输出你的ip地址+你的端口号(80默认隐藏)
2.测试你的django项目
能在pycharm或者别的软件中运行,不一定能在你的服务器上运行,所以我们还是要测试一下,以防遇见其他的错误。
输入你的python代码(这里我就不过多讲在服务器中python环境的安装了)
python manage.py runserver 0.0.0.0:8000
注意:0.0.0.0可以输入你的ip,也可以是django默认ip。还要注意端口号的占用问题哦。
二、配置nginx
1.配置nginx
现在,在 /etc/nginx/sites-available/目录中创建一个名为 mysite.conf 的文件)
server{
listen 80;#端口号
server_name imyuanli.com;#你的ip地址或者是域名
charset utf-8;#编码
client_max_body_size 75M;
location /media {
alias /home/mysite/media; #你自己的项目地址后面加上/media
}
location /static{
alias /home/mysite/static;#你自己的项目地址后面加上/static 注意:static是你自己创建的在根目录即可或者你的app下面
index yuanlifirst.html;
}
location / {
uwsgi_pass 127.0.0.1:8001; #socket地址我们在这里默认ip
include /etc/nginx/uwsgi_params;
}
}
2.运行nginx
部署静态文件
在运行 nginx 之前,您必须收集静态文件夹中的所有 Django 静态文件。在settings.py后面添加:
STATIC_ROOT = os.path.join(BASE_DIR, “/static/”)
注意:一定不要少了一个”/“
然后运行
python manage.py collectstatic
然后我们启动nginx
在/etc/nginx 文件下 输入 service nginx start
然后让nginx和uwsgi和你的test.py联系上
uwsgi --http :80 --wsgi-file test.py ##我这里的80是因为我们默认的socket当然你也可以输入下面的
uwsgi --socket :80 --wsgi-file test.py
运行看看会不会出现helloworld,如果出现了那么你的nginx应该就可以了。
三、配置uwsgi
1.配置uwsgi
我们先用下面代码运行一下你的django项目
uwsgi --module mysite.wsgi --static-map /static=/home/mysite/static
如果没有问题,然后我们开始配置uwsgi
在你的项目下面创建文件名mysite_uwsgi(自己命名,为了方便管理我们就创建一个文件吧),在里面我们需要用命令创建一个ini文件,mysite.ini
输入以下内容(其实里面有一些干啥用的我也不是特别懂,请大哥们自行百度)
[uwsgi]
chdir = /home/mysite
module = mysite.wsgi:application
processes = 10
max-requests =5000
uid=1000
gid=2000
harakiri = 60
socket = 127.0.0.1:8001 #这里需要和你nginx那里的配置文件相同
master = true
pidfile = /home/mysite_uwsgi/master.pid #一些配置文件
daemonzie = /home/mysite_uwsgi/mysite.log
vacuum = true
2.用uwsgi配置文件运行你的django项目
uwsgi --ini mysite_uwsgi.ini#以防万一就加上你自己的路径吧
但是在我们运行前我们需要重启nginx,依然得切换到nginx的保存路径
然后运行
service nginx restart
我们可以输入下面的命令查看是否运行了nginx
ps -aux | grep nginx
然后我们用配置文件见mysite.ini运行uwsgi
你也可以输入上面的命令,就是要把nginx换成uwsgi来查看运行情况
如果你的项目,在浏览器上输入ip后显示成功那么说明没有什么问题了
总结
提示:大概就是这么个情况,提一嘴在django上静态文件经常不显示,我还没有彻底搞清楚如果大哥们又出现这样的问题的,先百度吧,等小弟明白以后再写一篇。(这个配置大概配了八九次才搞明白,别急慢慢来)
例如:附上小弟的ip(域名还没有通过审核)http://49.232.220.106/
上一篇: flask项目部署