欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django+uwsgi+nginx+Ubuntu(二)

程序员文章站 2022-06-11 11:56:59
...

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/