uwsgi+Nginx部署Django

发布时间丨2021-10-15 11:12:06作者丨zhaomeng浏览丨115


服务器:阿里云

系统:ubuntu20

python:服务器自带

服务器在安全组中开启8001/8001端口

前期MySQL安装使用docker

可以使用Navicate可视化软件连接MySQL了!

到这里需要创建数据库名称blog

进入到项目目录有manage.py的文件,运行下面命令,生成数据库及创建后台数据超级管理员

开始项目部署:

一、Django项目文件settings.py文件的部署修改

    我的配置文件内容如下:

    修改setting.py 所在目录的那个 init.py文件使用vim编辑器打开init.py文件输入一下代码:

import pymysql
pymysql.install_as_MySQLdb()
DEBUG = False  #部署状态时True改为False
STATIC_URL = '/static/'  #静态文件路径

# 配置静态文件目录
#STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),]  # 调试状态下系统默认读取的静态文件路径
STATIC_ROOT = '/root/Python/Blog/static'  # 部署环境下静态文件的指定路径static文件需要自己创建
#媒体文件配置
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
CKEDITOR_UPLOAD_PATH = "images"  # 上传图片保存路径,如果没有图片存储或者使用自定义存储位置,那么则直接写  ' ' ,如果是使用django本身的存储方式,那么你就指名一个目录用来存储即可。

# 用到的富文本编辑器需要做下配置
注册一下富文本:
INSTALLED_APPS = [
    "simpleui",   #添加内容,一定要加在admin前
    ......
    'ckeditor',#富文本编辑器
    'ckeditor_uploader'#富文本编辑器上传图片模块

]
# 富文本编辑器ckeditor配置
CKEDITOR_CONFIGS = {
    #(1)默认配置
    # 'default': {
    #     'toolbar': 'full',  # 工具条功能
    #     'height': 300,  # 编辑器高度
    #     'width': 800,  # 编辑器宽
    # },

    #(3)自定义配置带代码块显示
    'default': {
        'toolbar': (
            ['div', 'Source', '-', 'Save', 'NewPage', 'Preview', '-', 'Templates'],
            ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Print', 'SpellChecker', 'Scayt'],
            ['Undo', 'Redo', '-', 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat'],
            ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
            ['Bold', 'Italic', 'Underline', 'Strike', '-', 'Subscript', 'Superscript'],
            ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote'],
            ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
            ['Link', 'Unlink', 'Anchor'],
            ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak'],
            ['Styles', 'Format', 'Font', 'FontSize'],
            ['TextColor', 'BGColor'],
            ['Maximize', 'ShowBlocks', '-', 'About', 'pbckcode'],
            ['Blockquote', 'CodeSnippet'],
        ),
        'width': 'auto',
        # 添加按钮在这里
        'toolbar_Custom': [
            ['NumberedList', 'BulletedList'],
            ['Blockquote', 'CodeSnippet'],
        ],
        # 插件
        'extraPlugins': ','.join(['codesnippet', 'widget', 'lineutils', ]),
    },
}

 

二、配置wsgi.ini启动项目

在博客项目的根目录下,Blog文件的根目录下,新建一个uwsgi.ini文件和一个run.log文件

然后我们使用vim编辑器编辑uwsgi.ini文件:vim uwsgi.ini

[uwsgi]
#http = 0.0.0.0:800  # 不使用nginx时
socket = 127.0.0.1:800  # 使用nginx时
chdir=/***/***/*** # 项目根目录
module=Blog.wsgi:application
master=True
pidfile=/tmp/Blog-master.pid
vacuum=True
max-requests=5000
daemonize=/**/**/run.log  # uwsgi日至
wsgi-file=Blog/wsgi.py

uwsgi部署错误:

*** WARNING: Can't find section "uwsgi" in INI configuration file uwsgi.ini ***

原因在于:

1.uwsgi.ini配置文件没有[uwsgi]开头配置提示

2.有[uwsgi]开头配置提示,但是后面有紧跟着的字符串

配置完成就可以运行该配置文件。控制台cmd进入uwsgi.ini所在的文件,运行 uwsgi --ini uwsgi.ini。

浏览器输入ip:8001/index.html 首页可以访问了,但是后台无法访问,经过问题分析,是静态文件的路径出了问题,所有我接着使用nginx做静态文件的部署。

三、安装配置Nginx

ubuntu下:

sudo apt-get update
sudo apt-get install nginx

#启动输入nginx即可
验证是否安装成功,在浏览器输入ip地址,出来Nginx界面,证明成功安装。

我的坑我只配置的是/etc/nginx/文件夹下的nginx.conf文件,但是没有起作用,正确的应该配置:修改nginx.conf首行的user www-data 修改为 user root权限:

user root;

然后是/etc/nginx/site-enable/default文件的具体内容。

static 那里也要替换成你自己Django项目的static路径;

media 同理换成你自己Django项目的media路径,这是媒体文件的文件夹;

注意:location后面是有空格的,必须要有!alias后面也是有空格的;include上面那句话也是要注释掉的!

修改成完成后使用 :wq! 保存退出

重启nginx

sudo service nginx restart

 到这里项目就部署成功了!可以使用www.zhaomeng.net.cn访问了!

推荐文章:uwsgi+Nginx部署Django