uwsgi+Nginx部署Django
发布时间丨2021-10-15 11:12:06作者丨zhaomeng浏览丨116
服务器:阿里云
系统: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访问了!