前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django使用manager.py 运行项目,或者uWSGI进行部署项目,使用Nginx进行负载均衡

Django使用manager.py 运行项目,或者uWSGI进行部署项目,使用Nginx进行负载均衡

作者头像
一写代码就开心
发布2022-05-18 13:25:30
9440
发布2022-05-18 13:25:30
举报
文章被收录于专栏:java和python

目目录

1 WSGI 是什么

就是一个接口

2 uWSGI 是什么

和tomcat一样,就是一个服务器

3 安装uwsgi

我们登录虚拟机,在虚拟机里面安装uwsgi

1 安装uwsgi

代码语言:javascript
复制
这个命令查看是否安装这个uwsgi


pip3 freeze|grep -i 'uwsgi'

2 进行安装

代码语言:javascript
复制
pip3 install uwsgi==2.0.18   -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

3 在我们的配置文件里面安装uwsgi的配置文件

ini文件的名称是随便起的

代码语言:javascript
复制
/mylinux/python/djangoproject/django_test/django_test
代码语言:javascript
复制
uwsgi --ini uwsgi.ini

uwsgi --stop  uwsgi.pid

ps -ef|grep uwsgi

tail -f uwsgi.log

启动的时候,报错

手动下载依赖,手动安装

但是提示版本不对,太低了,所以升级,升级的方法是

代码语言:javascript
复制
外部下载上传到linux里面

运行Django报错,原因是因为SQLite版本过低,需要升级

下载源码包: wget https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz(这里上官网https://www.sqlite.org自己找一下)

解压: tar -zxvf sqlite-autoconf-3350500.tar.gz

进入到目录:cd sqlite-autoconf-3350500

初始化并编译安装:

./configure --prefix=/usr/local/

make && make install

重命名并软链:

mv  /usr/bin/sqlite3 /usr/bin/sqlite3.bak

ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3

配置环境变量并生效:

echo export LD_LIBRARY_PATH="/usr/local/lib">> ~/.bashrc

source ~/.bashrc

检查版本:

sqlite3 --version

启动项目的时候,又报错

代码语言:javascript
复制
ModuleNotFoundError: No module named '_ssl'
代码语言:javascript
复制
yum install openssl-devel 

也是手动下载进行安装

安装好之后,

然后到python的解压文件夹下 Modules 目录, 找到Setup.dist文件,将下面几行的注释去掉(下图已去掉)。

vim Setup.dist (约50%处) 209行,原来人家是注释的,你打开,之后就变为

保存退出

之后重新编译安装

在这个解压的目录下,执行

4 cd 到解压的目录下

进行安装,可以指定一个安装目录

代码语言:javascript
复制
./configure --prefix=/mylinux/python/python3/  --enable-loadable-sqlite-extensions

//安装到/usr/local目录

5

make

make altinstall //此处不能用install安装,因为install不区分版本,会出现多版本混乱的问题

make&& make install

6 以上完成之后,这个里面就有了ssl了,如何检查

进入python的客户端

没有报错就安装成功;

将创建django项目是生成的settings.py文件中的ALLOWED_HOSTS = 改成 ALLOWED_HOSTS = ’*’

代码语言:javascript
复制
DEBUG = False

ALLOWED_HOSTS = ['*']

具体的uwsgi.ini文件里面的代码是

代码语言:javascript
复制
[uwsgi]
http=0.0.0.0:8222
chdir=/mylinux/python/djangoproject/django_test
wsgi-file=django_test/wsgi.py
process=4
threads=2
pidfile=uwsgi.pid
daemonize=uwsgi.log
master=True

以上启动之后,Windows里面就可以访问到了

4 manager.py进行启动项目

代码语言:javascript
复制
python3 manage.py runserver 0.0.0.0:8000

将创建django项目是生成的settings.py文件中的ALLOWED_HOSTS = 改成 ALLOWED_HOSTS = ’*’

代码语言:javascript
复制
DEBUG = False

ALLOWED_HOSTS = ['*']

之后再manager.py文件的目录下,输入命令

代码语言:javascript
复制
python3 manage.py runserver 0.0.0.0:8000

但是会报错

代码语言:javascript
复制
django.db.utils.NotSupportedError: URIs not supporte

解决方法是进入/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py出错的位置把True改为False

我本地是

代码语言:javascript
复制
/mylinux/python/python3/lib/python3.6/site-packages

改完保存之后就可以启动项目,

启动成功之后再Windows浏览器访问

5 uwsgi常见的问题

6 Nginx

6.1概念

6.2 安装Nginx

安装

6.3 修改Nginx的配置

代码语言:javascript
复制
/usr/local/nginx/conf

7 django使用runserver 启动,使用Nginx进行代理

django使用runserver 启动,使用Nginx进行代理。

1 我们在linux里面,使用runserver 将django项目启动

代码语言:javascript
复制
python3 manage.py runserver 0.0.0.0:8000

以上启动之后,直接在Windows的浏览器端,就可以访问

2 我们使用Nginx进行转发

打开Nginx的配置文件

之后启动Nginx

代码语言:javascript
复制
./nginx -c /usr/local/nginx/conf/nginx.conf

在Windows里面的浏览器里面进行访问

8 django使用uwsgi启动,之后使用Nginx进行转发

1 首先打开uwsgi.ini文件

代码语言:javascript
复制
[uwsgi]

socket=0.0.0.0:8009
chdir=/mylinux/python/djangoproject/django_test
wsgi-file=django_test/wsgi.py
process=4
threads=2
pidfile=uwsgi.pid
daemonize=uwsgi.log
master=True

进行保存退出

代码语言:javascript
复制
启动
uwsgi --ini uwsgi.ini

uwsgi --stop  uwsgi.pid

ps -ef|grep uwsgi

tail -f uwsgi.log

使用uwsgi启动项目

2 更改Nginx的配置

代码语言:javascript
复制
 location / {
#  这个ip和端口就是项目里面ini文件里面配置的
                uwsgi_pass  127.0.0.1:8009;
                include /usr/local/nginx/conf/uwsgi_params;
        }

保存之后启动项目

浏览器访问

9 Nginx保存静态文件,直接访问

我们的django项目,里面是有静态文件的,我们可以将django项目的静态文件放到linux的一个文件夹下,在Nginx里面配置这个文件夹

1 创建一个文件夹,以后文件夹里面就是存放项目的静态文件

代码语言:javascript
复制
/mylinux/python/static_test

修改django项目的配置文件,将静态文件的路径改为我们新建的这个

代码语言:javascript
复制
STATIC_ROOT='/mylinux/python/static_test/static/'

执行以下的命令,就将项目需要的静态文件放到我们自己创建的目录下了

代码语言:javascript
复制
 python3 manage.py collectstatic

接下来就是告诉Nginx,什么样子的请求来了就会到这个文件夹下找东西

上面配置里面root的意思是 根目录

之后重启启动Nginx,浏览器访问

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目目录
  • 1 WSGI 是什么
  • 2 uWSGI 是什么
  • 3 安装uwsgi
  • 4 manager.py进行启动项目
  • 5 uwsgi常见的问题
  • 6 Nginx
    • 6.1概念
      • 6.2 安装Nginx
        • 6.3 修改Nginx的配置
        • 7 django使用runserver 启动,使用Nginx进行代理
        • 8 django使用uwsgi启动,之后使用Nginx进行转发
        • 9 Nginx保存静态文件,直接访问
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档