栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

部署django到阿里云服务 超详细(四、安装配置uwsgi和nginx替换django测试服务器)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

部署django到阿里云服务 超详细(四、安装配置uwsgi和nginx替换django测试服务器)

一、安装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项目

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/973502.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号