【技术博客】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即可运行服务。

原文地址:https://www.cnblogs.com/stupidRJGC/p/10961218.html

时间: 2024-08-29 15:01:05

【技术博客】Django+uginx+uwsgi框架的服务器部署的相关文章

多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客

多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客 多IDC数据分布--MySQL多机房部署

【技术博客】Django中文件下载的实现

开发组在开发过程中,都不可避免地遇到了一些困难或问题,但都最终想出办法克服了.我们认为这样的经验是有必要记录下来的,因此就有了[技术博客]. Django中文件下载的实现 1.背景 在VisualPytorch项目中,当时需要提供一个文件下载的功能.最初想到的方案主要有一下三种 直接把网页前端的字符串写入文件中,在客户端完成. 这个方案经过查找资料发现不同浏览器的同源策略以及安全策略不尽相同,难以实现,放弃. 在服务器上再开一个ftp服务器系统地提供文件服务. 这是最开始的思路,后来根据实际需求

手把手教你建github技术博客by hexo

适合人群 喜欢写Blog的人 有一定的编程基础 爱折腾的人 熟练使用版本控制Git 了解使用Github 熟悉基本的MarkDown语法 环境准备 安装Git 下载 msysgit 并执行即可完成安装. 安装Node.js 在 Windows 环境下安装 Node.js 非常简单,仅须下载安装文件并执行即可完成安装. 安装hexo 利用 npm 命令即可安装.(在任意位置点击鼠标右键,选择Git bash) npm install -g hexo 问题 * npm ERR! registry e

开始真正的技术博客之旅

想自己做个东西,小公司企业管理软件,借此地记录开发过程 操作系统:windows8.1 框架:struts2           版本struts-2.3.16.3 Hibernate4      版本hibernate-release-4.3.5.Final Spring            版本spring-framework-3.2.10 数据库:mysql          版本mysql-5.6.14 开发语言:Java         版本jdk-7u67-windows-x64

UC技术博客开放通知

国内知名浏览器UC开放技术博客( http://tech.uc.cn/),技术博客所涵盖技术点有: Hadoop Linux MySQL 前端与客户端技术 图像处理 开发语言和框架 数据存储 数据结构与算法 服务器与代理服务器 网络编程 运维部署 如果大家想在技术上更多的与博文的作者交流,请关注新浪微博 @UC技术博客 UC技术博客开放通知,布布扣,bubuko.com

[转]有哪些值得关注的技术博客(Java篇)

有哪些值得关注的技术博客(Java篇) 大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1.总结知识点相对比较全面 2.一般来说讲解知识点通俗易懂 3.路线比较清晰,不会有太多的冗余内容. 这样一来,对于自学的朋友来说,一些专业的博客不但大量的缩减了你得学习时间.提高了学习效率.更重要的是这些博客能培养你对编程的兴趣. 于是,这几期文章会主要推荐一些技术博客,目前计划打算主要分为: (已完) 

最值得收藏的java技术博客(Java篇)

第一个:java_my_life 作者介绍:找不到原作者信息.大概做了翻阅全部是2012年的博客. 博客主要内容:主要内容是关于Java设计模式的一些讲解和学习笔记,在相信对学习设计模式的同学帮助很大.在一望无际的Java博文中有那么一两篇JavaScript文章,就算两篇Javascript的质量不是很高,其它教程也是能很好的帮助到在学习中的朋友. 博客关键词:JAVA与模式.简单工厂模式.工厂方法.抽象工厂.单例.建造.原型.适配器.合成.迭代.观察者.模板方法.策略.不变.桥梁.门面.代理

[福大软工] Z班——个人技术博客评分

个人技术博客 作业地址 https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/1070 作业要求 个人技术博客单次作业满分为10分,博客的形式与内容不做任何限制,但要在博客中说明博客所介绍的技术与团队项目的关系.第一次个人技术博客的截止日期会定在团队阿尔法阶段结束时(初步设定了截止日期,之后会根据团队项目整体的进度调整). 注意:技术博客是个人作业,需要每位同学独立完成. 评分准则 本次技术博客的分数由两部分组成,

国内各大互联网公司相关技术博客3.0版 (集合腾讯、阿里、百度、搜狐、新浪、网易、360等共29个)

在2013-07-15 整理了一份国内各大互联网公司相关技术站点2.0版 (集合腾讯.阿里.百度.搜狐.新浪.360等共49个) 近日重新整理了一番,希望能对大家有所帮助 2013年 腾讯系列(13)  阿里系列(18)  百度系列(3)  搜狐系列(3)  新浪系列(2)  360系列(2)   其他(9) 2016年 腾讯系列(9)  阿里系列(5)  百度系列(6)  搜狐系列(1)  新浪系列(1)  360系列(2)   其他(3) 新增 网易(2) 腾讯系列(9) 1.财付通设计中心