【技术博客】Django+uginx+uwsgi框架的服务器部署
1.登录服务器
使用ssh来直接登录到服务器terminal进行操作,推荐使用XShell和XFtp来进行远程登录和文件传输。
2.运行环境准备
本组获得的华为云服务器为ubuntu16.04版本,先安装python和pip。然后安装django,注意安装版本要和本地测试的django版本一致,下面以2.0为例
pip3 install django2.0
安装nginx
sudo apt-get update
sudo apt-get install nginx
安装完成后。用你电脑的浏览器访问你的服务器的公网ip地址,看看安装成功没有。
安装uwsgi
在你的本地电脑访问https://uwsgi-docs.readthedocs.io/en/latest/Download.html,下载Stable/LTS版本的源文件。
本地下解压这个源文件,然后用xftp把文件拖放到阿里云的Ubuntu的家目录(home)下,使用cd命令进入到该文件夹下,按顺序依次输入下面三条命令:
sudo apt-get install python3-setuptools
sudo apt-get install python3-dev
sudo python3 setup.py install
安装MySQL
sudo apt-get install mysql-server mysql-client
配置mysql文件:
sudo vim/etc/mysql/mysql.conf.d/mysqld.cnf
然后注释掉下面这行代码:
# band-address = localhost
3.配置项目
先用xftp把你的整个博客项目拖到家目录(home)那里,或者使用git工具从代码库里面拷贝,然后开始配置nginx文件:
cd /etc/nginx/sites-available
vim default
使用cd命令进入到sites-available文件夹,文件夹下有一个default文件,使用vim打开它,找到default文件下的这段代码,如果没有就要添加上去:
server_name 192.168.1.121;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
# try_files $uri $uri/ =404;
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; }
location /static {
alias /home/feixue/python/www/for_test/static;
}
location /media {
alias /home/ubuntu/blog/media; }
192.168.1.121替换成你自己服务器公网IP地址;
static 那里也要替换成你自己Django项目的static路径;
media 同理换成你自己Django项目的media路径,这是媒体文件的文件夹;
注意:location后面是有空格的,必须要有!alias后面也是有空格的;include上面那句话也是要注释掉的!
修改成完成后使用 wq 保存退出。
再输入下面命令重启服务:
sudo service nginx restart
配置uwsgi
在django项目有manage.py文件的目录下,新建一个uwsgi.ini文件和一个run.log文件
然后我们使用vim编辑器编辑uwsgi.ini文件:
[uwsgi]
chdir = /home/NAME
module = NAME.wsgi:application
socket = 127.0.0.1:8000
master = true
daemonize = /home/run.log
disable-logging = true
chdir 是你的项目的根目录,要替换成实际的路径;
moudule 是你的入口wsgi模块,将NAME替换成项目名称;
socket 是通信端口设置,这个设置不用改,复制即可;
master = true 表示以主进程模式运行,不用改,复制即可;
daemonize 是日志文件目录,这个路径就是刚刚新建的run.log文件的路径;
disable-logging = true 表示不记录正常信息,只记录错误信息。
修改settings.py文件
打开settings.py文件找到下面代码并修改:
DEBUG = False
ALLOWED_HOSTS = [‘192.168.178.128’]
上面这个在一些情况下不改好像也不影响运行。
4.运行服务
使用下面的命令重启运行nginx和uwsgi:
sudo service nginx restart
sudo killall -9 uwsgi
sudo uwsgi uwsgi.ini
django项目在本地的运行方式是python manage.py runserver,而在服务器上则不需要,交给uwsgi来完成这步即可。在三者的框架下,django作为一个基于python的Web应用框架,实现网站的实际功能。nginx作为一个Web服务器,通过监听端口来接收用户端信息。uwsgi则是把上面两者连接起来,uwsgi作为通信协议可以确定服务器(nginx)和应用框架(django)之间的传输信息标准。所以我们在服务器上启动nginx service后再启动uwsgi即可运行服务。
【技术博客】Django+uginx+uwsgi框架的服务器部署的更多相关文章
- [技术博客] Django中文件的保存与访问
[技术博客] Django中文件的保存与访问 在TextMarking项目开发中,数据库需要保存用户上传的文本文档. 原型设计:用户点击上传文本->保存文本->文本发送到后端保存为文件. ...
- [技术博客]Django框架-后端的搭建
目录 Django框架-后端的搭建 前言 环境的部署 项目的创建 app的使用 创建app 修改配置文件 app中数据表的构建 前端接口 接口的路径 运行服务器 验证后端 Django框架-后端的搭建 ...
- [技术博客]ubuntu+nginx+uwsgi+Django+https的部署
ubuntu+nginx+uwsgi+Django+https部署文档 配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版 ...
- [技术博客]django连接mysql数据库的方法及部分问题的解决方法
配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版本:Django 2.2 MySql版本:5.7.26 数据库选择 我们 ...
- 多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客
多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客 多IDC数据分布--MySQL多机房部署
- 自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客
自动化运维工具Ansible详细部署 - 人生理想在于坚持不懈 - 51CTO技术博客 自动化运维工具Ansible详细部署
- 【技术博客】Django中文件下载的实现
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. Django中文件下载的实现 1.背景 在VisualPy ...
- 【技术博客】JWT的认证机制Django项目中应用
开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. JWT的认证机制Django项目中应用 这篇技术博客基于软 ...
- [技术博客]采用Bootstrap框架进行排版布局
[技术博客]采用Bootstrap框架进行排版布局 网页的前端框架有很多很多种,比如Bootstrap.Vue.Angular等等,在最开始其实并没有考虑到框架这回事,开始阅读往届代码时发现其部分采用 ...
随机推荐
- Java3-5年经验面试题总结
记录一下本次找工作所遇到的一些高频面试题,第一次找java工作,感觉比面试.net舒服多了,17年的时候出去找.net工作,由于在公司做的东西用到的技术少,除了mvc和ef,其他没啥问的,就追着项目问 ...
- vue + yarn 项目开发 (一)
1.打开src文件夹中的main.js文件,添加引用element ui框架 import ElementUI from 'element-ui' import 'element-ui/lib/the ...
- APS应用案例|纽威阀门实现高效排产
企业背景: 苏州纽威阀门股份有限公司(下文简称:纽威阀门)成立于1997年,总部设在江苏苏州.自成立以来一直致力于工业阀门的研发与制造,以为客户提供全套工业阀门解决方案为目标.纽威阀门通过企业的努力发 ...
- 搜索和浏览离线 Wikipedia 维基百科(中/英)数据工具
为什么使用离线维基百科?一是因为最近英文维基百科被封,无法访问:二是不受网络限制,使用方便,缺点是不能及时更新,可能会有不影响阅读的乱码. 目前,主要有两种工具用来搜索和浏览离线维基百科数据:Kiwi ...
- MVC4 Model View Controller分离成独立项目
适合人群:了解MVC项目的程序员 开发工具:vs2012 开发语言:C# 小项目或功能比较单一的项目可以直接新建一个MVC基本项目类型即可,但随着需求不断迭代,项目的功能模块越来越多,甚至有些模块可以 ...
- Apache Hive
1.Hive简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 本质是将SQL转换为MapReduce程序. 主要用途:操作接口采用 ...
- Linux运维技术之scp命令使用
命令格式: scp -P 8031 -r 路径1 路径2 命令解释, 其中-P中的P一定要大写,小写不行(这个也是问题的关键,这个大小写耽搁了好长时间) -P 2424表示更改SSH端口后的端口,如 ...
- Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制
Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.基于用户的访问控制概述 认证质询: WWW-Auth ...
- 利用requests库访问网站
1.关于requests库 函数 Response对象包含服务器返回的所有信息,也包含请求的Request信息. 访问百度二十次 import requests def getHTMLText(url ...
- 如何将wordpress的the_title()进行大小写处理
有时我们在做wordpress网站时需要将标题的大写字母改成小写字母或小写字母转为大写字母方便调用,那么要如何改造呢?我们知道Wordpress the_title()函数默认回显标题,标准写法是&l ...