一、安装uwsgi和nginx
二、vscode中设置setting.py配置uwsgi
三、云服务配置nginx
安装uwsgi
sudo pip3 install uwsgi
给uwsgin添加环境变量
uwsgi的安装路径 我的安装路径是 /usr/local/bin/uwsgi
sudo ln -s /usr/local/bin/uwsgi /usr/bin
安装nginx
sudo yun -y install nginx
vscode
更改setting文件 部分可能不需要更改
DEBUG = False
DATABASES = {
'default': {
"ENGINE":"django.db.backends.mysql",
"NAME":"连接数据库库名",
"USER":"连接数据库账号",
"PASSWORD":"连接数据库密码",
"HOST":"localhost",
"PORT":"3306"
}
}
# static静态目录文件 用于存放js css img 等 需要手动新建
# media媒体文件用户上传的文件
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
# MEDIA_ROOT = os.path.join(BASE_DIR,'media')
# 云服务中将静态文件、和媒体文件、进行集合
STATICFILES_DIRS = [
os.path.join(BASE_DIR,"static"),
os.path.join(BASE_DIR,'media')
]
# 将STATICFILES_DIRS集合的文件 通过下面命令 指向一个文件夹 (自己理解的好像不对)
# 我的自定义文件夹collected_static 路径((最好和项目目录同级))
# 在云服务中 要通过命令将静态和媒体文件同步这个文件夹中
# nginx也要进行指向云服务对应的路径
STATIC_ROOT = os.path.join(BASE_DIR,"../collected_static")
urls.py文件修改
# 导入两个包
from django.views.static import serve
from django.urls import re_path
# 指向setting文件下定义的MEDIA_ROOT中media的媒体文件urlpatterns = [
re_path('media/(?P
.*)', serve,{'document_root':settings.MEDIA_ROOT},name='media'), ]
进入云服务命令行
找到刚刚setting文件中自定义的文件名 ../collected_static
cd /home/tuku/ 进入指定的路径
sudo mkdir collected_static 创建定义的文件夹
在对应的目录下创建这个自定义文件(最好和项目目录同级)
cd /home/tuku/setuku/ 进入项目文件夹
sudo python3.7 manage.py collectstatic
将setting文件中 STATICFILES_DIRS 指向的文件同步到collec_tstatic 文件中
回到vscode 配置uwsgi文件(相当于代替了django的运行)
项目文件夹下创建uwsgi.ini文件和uwsgi文件夹
配置uwsgi.ini文件
[uwsgi] # 固定格式
socket = 127.0.0.1:8000 # 运行uwsgi时使用的IP和端口 (代替了django的服务运行)
chdir = /home/tuku/setuku # uwsgi 运行该项目的路径 (服务运行的项目路径)
module = setuku.wsgi # 固定格式
master = true
processes = 1
threads = 2
max-requests =2000
chmod-socket = 664
vacuum = true
stats = %(chdir)/uwsgi/uwsgi.status # uwsgi.status 启动文件
pidfile = %(chdir)/uwsgi/uwsgi.pid # uwsgi.pid 不知道有毛用
daemonize = %(chdir)/uwsgi/uwsgi.log # uwsgi.log (相当于django服务运行时打印的日志)
云服务 配置nginx
sudo vim /etc/nginx/nginx.conf 进入nginx配置文件
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
location /static{
alias /home/tuku/collected_static/;
}
上面的解释下
listen 80; 端口80 是云服务的端口
uwsgi_pass 127.0.0.1:8000; 同vscode中uwsgi的IP和端口
/home/tuku/collected_static/; 这个路径是刚才同步文件自己创建路径位置
配置完成 开始启动
到项目目录下 使用命令 ls 查看vscode下创建的 uwsgi.ini和uwsgi文件是否同步到云服务
sudo uwsgi3 --ini uwsgi 启动uwsgi配置文件
cd uwsgi 进入uwsgi 文件
ls 查看 三个文件是否生成
sudo systemctl start nginx 启动nginx
打开游览器输入公网地址成功访问 django项目



