nginx+uwsgi部署django项目
创始人
2024-05-22 18:14:25
0

nginx+uwsgi部署django项目

1. python3.9环境安装

  1. 安装依赖
yum install zlib zlib-devel libffi-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make wget
  1. 下载源码 官网地址
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz
  1. 解压 & 编译 & 安装
xz -d Python-3.9.6.tar.xz
tar -xf Python-3.9.6.tar
cd Python-3.9.6
./configure prefix=/usr/local/python3
make && make install
  1. Python解释器配置豆瓣源
pip3 config set global.index-url https://pypi.douban.com/simple/

2. 虚拟环境安装

pip3 install virtualenv
pip3 install virtualenvwrapper
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6    #指定虚拟环境默认的python版本
export WORKON_HOME=~/.envs     #指定创建好的新的虚拟环境保存在哪个文件夹下
source /usr/local/bin/virtualenvwrapper.sh    #执行virtualenvwrapper.sh 脚本
source ~/.bashrc

命令使用

mkvirtualenv test  # 创建并切换到test虚拟环境   放在了 ~/.envs 里面
deactivate  # 离开test虚拟环境
rmvirtualenv test # 删除test虚拟环境
workon demo # 切换到demo虚拟环境

3. uwsgi安装配置

pip3 install uwsgi
  1. 使用命令启动uwsgi
#在项目目录中执行
uwsgi --http 192.168.163.128:9000 --file BBS/wsgi.py --static-map=/static=static
  1. 使用配置文件启动 [ini]

    在项目同级目录下创建一个script文件夹,把配置文件放在里面

[uwsgi]
# 指向项目目录
chdir =  /root/projects/BBS/BBS/
#启动uwsgi的用户名和用户组
#uid=root
#gid=root
#指定项目的application
module=BBS.wsgi:application
#指定sock的文件路径
#socket=/root/projects/BBS/script/uwsgi.sock
socket =0.0.0.0:8080
#virtualenv = /root/.envs/django_env#启动主进程
master = true
# 进程个数
#workers=2
pidfile=/root/projects/BBS/script/uwsgi.pid
#自定移除unix socket和pid文件,当服务器停止的时候
vacuum =true
#max-requests=5000
#序列化接受的内容,如果可能的话
thunder-lock=true
#启动线程
enable-threads=true
#设置自中断时间
harakiri=30
#设置缓冲
post-buffering=1028
#设置日志目录
daemonize=/root/projects/BBS/script/uwsgi.log

启动命令

#要在虚拟环境中启动哦
#要在script文件夹下启动哦
uwsgi --ini uwsgi.ini

查看uwsgi是否启动

ps -ef |grep -i uwsgi

起来之后会在script文件夹下生成一些文件

image-20230128194359905

4.nginx安装和配置

新建配置yum源

vim /etc/yum.repos.d/nginx.repo# 写入一下内容
[nginx]
name=nginx repo
#7是centos的版本
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

安装

yum -y install nginx 

添加Nginx配置文件

cd /etc/nginx/conf.d/vim bbs.conf  #名字跟项目一样#写入一下内容
server{listen 80;server_name 192.168.163.128;access_log /var/log/nginx/access.log  main;charset utf-8;gzip on;gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream;#error_page 404  /404.html;#error_page  500 502 503 504 /50x.html;#指定项目路径uwsgilocation / {include uwsgi_params;uwsgi_connect_timeout 30;#uwsgi_pass unix:/root/projects/BBS/script/uwsgi.sock;uwsgi_pass 127.0.0.1:8080;}#指定项目静态文件路径location /static/ {alias /root/projects/BBS/BBS/static_all/;index index.html index.htm;expires 30d;}location /media/ {alias /root/projects/BBS/BBS/static_all/;expires 30d;}
}

5.静态文件配置

#项目settings.py中添加
STATIC_ROOT=os.path.join(BASE_DIR,'static_all')
#收集
python3 manage.py collectstatic --noinput

image-20230128232540817

修改nginx配置文件

 location /static {alias /root/projects/BBS/BBS/static_all/;
}

image-20230128232722665

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...