当前位置:   article > 正文

Linux部署Django项目(nginx+uwsgi+django)_django部署到linux

django部署到linux


一、部署架构

在这里插入图片描述
Nginx实现动静分离、负载均衡
uWSGI部署Django项目
Nginx与uWSGI在同一服务器上

二、用pycharm导出项目依赖包

pip install pipreqs

# 进入到项目所在目录,在执行下面的命令
$> pipreqs . --encoding=utf8 --force	#或者用pip3 freeze > requirements.txt命令
 
# “.” 指的是将导出依赖包的文件放在当前目录下
# “--encoding=utf8” 指的是存放文件的编码为utf-8,否则会报错
# “--force”  --force 强制执行,当生成目录下的requirements.txt存在时强制覆盖
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
生成requirements.txt文件
在这里插入图片描述

三、将项目打成zip包,并上传到Linux服务器

选中需要打包的内容,右击→添加到压缩文件
在这里插入图片描述
在这里插入图片描述

四、Linux服务器安装python3

Linux源码编译python3

五、安装项目依赖包

cd /opt
unzip ldp.zip -d ldp
cd ldp
pip3 install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
  • 1
  • 2
  • 3
  • 4

六、修改配置文件settings.py

关闭debug模式和白名单

DEBUG = False
  • 1

设置访问白名单

ALLOWED_HOSTS = ['*']	# 白名单,只允许列表中的ip访问,*代表所有
  • 1

在这里插入图片描述

七、准备数据库

我这里是共用开发环境的数据库,如果部署一个新库,需要修改settings.py中DATABASES中的配置
在这里插入图片描述
并执行数据库同步

python3 manage.py migrate
  • 1

八、启动开发环境,验证依赖模块

python3 manage.py runserver 0.0.0.0:8080
  • 1

如下,代表启动正常
在这里插入图片描述
Ctrl+C退出

九、安装与配置uwsgi

安装uwsgi

uWSGI是一个Web服务器,也是Python的一个模块,直接pip安装即可

pip3 install uwsgi -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
  • 1

创建uwsgi配置文件

vim /opt/ldp/uwsgi.ini

[uwsgi]
# 项目目录
chdir = /opt/ldp
# 指定sock的文件路径
socket = /opt/ldp/uwsgi.sock
# 指定监听端口
#http = 0.0.0.0:8080
# 静态资源
static-map = /static=/opt/ldp/static
# wsgi文件(django入口)
wsgi-file=ldp/wsgi.py
# 进程个数
processes = 4 
# 进程pid
pidfile = /opt/ldp/uwsgi.pid
# 日志路径
daemonize = /var/log/uwsgi.log
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

启动uwsgi

uwsgi --ini /opt/ldp/uwsgi.ini
  • 1

相关命令:

uwsgi --reload /opt/ldp/uwsgi.ini	#重载django项目
uwsgi --stop /opt/ldp/uwsgi.pid		#停止Django项目
  • 1
  • 2

十、安装nginx

yum -y install epel-release
yum -y install nginx
  • 1
  • 2

vi /etc/nginx/nginx.conf

server {
     listen       80 default_server;
      server_name  _;

      location / {
         include     uwsgi_params;  # 导入模块用于与uwsgi通信
         uwsgi_pass unix:/opt/ldp/uwsgi.sock; 
      }
      # 静态文件目录
      location /static {
         alias /opt/ldp/static;
      }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

启动nginx

十一、访问

http://IP
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/508301
推荐阅读
相关标签
  

闽ICP备14008679号