[部署开发环境]部署django的生成环境nginx+uwsgi+django
#教程
# ubuntu部署django项目 # 部署准备
- ubuntu操作系统 -- vagrant虚拟
- Nginx服务器 -- 安装在ubuntu的web服务器
- uWSGI应用协议服务模块 -- python的uwsgi模块
- python虚拟环境 -- virtualenv
- django框架 - nginx 配置(http <--> socket)
- uwsgi配置(socket<-->wsgi)
- 系统配 详情见图片linux部署django项目图.png # 工作原理: http
client(浏览器)<---->linuxweb服务器 Nginx--(socket)--uWsgi---->django Nginx 怎么和Python环境上代码连接:
- Nginx<--->uWsgi python模块<--->python的环境
-- Nginx<--->uWsgi (socket)
-- uWsgin<-->django (wsgi) # 部署流程
- 部署ubuntu操作系统
- 安装Nginx服务
- 部署Python环境(包含virtualEnv和真实环境)
- 部署django工程
- 部署uWSGI
- 配置Ngix
- uWSGi配置 # 安装并测试Nginx
- apt install nginx --安装完成已经启动了,不需要/etc/init.d/nginx restart - 启动Nginx
/etc/init.d/nginx start (restart, stop)
- 测试Nginx
-- 浏览器访问主机地址: http://192.168.33.10/
-- 如果看到Welcome to nginx!,表示已经成功!
-- 说明浏览器<--->nginx是正常的 # 创建Python虚拟环境
root@vagrant-ubuntu-trusty-:/home/vagrant# which python
/usr/bin/python
root@vagrant-ubuntu-trusty-:/home/vagrant# python
Python 2.7. (default, Nov , ::) ---可以看到自带的python是2. - apt-get install python-pip
- pip install virtualenv
- cd /
- mkdir -p /opt/envs
- cd /opt/envs
- virtualenv -p /usr/bin/python --no-site-packages env27 # 测试python虚拟环境
- source /opt/envs/env27/bin/activate
- python -V #检查python版本是否和真实环境一致
- deactivate # python 虚拟环境安装django 和mezzanine
-- source /opt/envs/env27/bin/activate
-- pip insatll mezzanine
#因为mezzanine依赖django,所以安装mezzanine会自动安装django, 和自动安装很多其他模块 # 创建mezzanine工程 --测试 浏览器--(http)->mezzannie
-- cd /vagrant_data
-- mezzanine-project myblog
-- cd myblog
-- python manage.py createdb #可能要求输入root密码
-- Python manage.py collectstatic -- 配置settings.py里面的allowed-hosts, 填写自己虚拟机的ip地址 # 不走生成环境,即不走Nginx,浏览器直接到mezzanine
-- python manage.py runserver 192.168.33.10: # 安装uWSGI 测试浏览器-(http)->uWSGI-(wsgi模块)->mezzanine, uwsgi作为测试服务器 - sudo apt-get install python-dev #官网是apt-get install build-essential python-dev - pip install uwsgi #虚拟环境中装
-- 安装不成功,因为plugins/python/uwsgi_python.h::: fatal error: Python.h: No such file or directory
-- /usr/include/Python2. 文件夹没有Python.h这个文件
-- 解决方法 sudo apt-get install python-dev # 测试uwsgi是否正常 - cd /vagrant_data/myblog
- uwsgi --http : --module myblog.wsgi # /vagrant_data/myblog/myblog/wsgi.py 浏览器输入http://192.168.33.10:8000/ 如果页面正常: 说明浏览器--->uwsgi--->django/mezzanine是正常的 # 实现nginx 和uwsgi实现通信(编辑配置文件xx.conf, uwsgi.ini) 实现:浏览器<----(http)---->Nginx<---(socket)---->uWsgi<----(wsgi)---->django/mezzanine -- 配置Nginx的conf a. vim /vagrant_data/myblog/myblog_nginx.conf
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:; # for a web port socket (we'll use this first)
}
# configuration of the server
server {
# the port your site will be served on
listen ;
# the domain name it will serve for
server_name 192.168.33.10 ; # substitute your machine's IP address or FQDN
charset utf-; # max upload size
client_max_body_size 75M; # adjust to taste # Django media
#location /media {
# alias /path/to/your/mysite/media; # your Django project's media files - amend as required
#} location /static {
alias /vagrant_data/myblog/static; # your Django project's static files - amend as required
} # Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /vagrant_data/myblog/uwsgi_params; # the uwsgi_params file you installed
}
} b. 赋值/etc/nginx/uwsgi_params 到工程目录下
cp /etc/nginx/uwsgi_params /vagrant_data/myblog
# uwsgi_params所在目录要和myblog_nginx.conf中的location / { include 目录对应} c. 将myblog_nginx.conf 放到nginx的配置文件目录下(做一个连接即可(快捷方式),保留工程下的myblog_nginx.conf) #配置文件在/etc/nginx/sites-enable中的default中,将其用myblog_nginx.conf替换掉即可,其实default也是一个链接 cd /etc/nginx/sites-enables
rm default
ln -s /vagrant_data/myblog/myblog_nginx.conf myblog d. 重启nginx服务 /etc/init.d/nginx restart -- 配置uwsgi.ini
# mysite_uwsgi.ini file
[uwsgi] # Django-related settings
# the django project directory (full path)
chdir = /vagrant_data/myblog
# Django's wsgi file
module = myblog.wsgi # process-related settings
# master
master = true
# maximum number of worker processes
processes = threads =
max-requests = # ... with appropriate permissions - may be needed
socket = /vagrant_data/myblog/nginx.sock #这里要和nginx的uwsgi_pass设置一致
chmod-socket =
# clear environment on exit
vacuum = true -- 启动uwsgi
-- 未完,待继续
[部署开发环境]部署django的生成环境nginx+uwsgi+django的更多相关文章
- 如何将django部署从顶级目录迁移到子目录下(NGINX UWSGI DJANGO)
因为公司网站合并,要将我们的DJANGO项目从IP的顶级目录迁移到域名的二级目录. 以前硬编码的URL可惨了. 还涉及到upload目录,静态目录,websocket目录. 全用{% url %}问题 ...
- nginx+uwsgi+django 部署原理
python开发群里经常有同学问 nginx+uwsgi+django 着了教程部署,但是不知道他们之间怎么样的关系,于是我就google到了一个让我看起来很认同的图,大家看了也比较认同,于是就分享出 ...
- nginx+uwsgi+django开发环境搭建
Nginx+uWSGI+Djangoi开发环境搭建 Django简介,环境搭建 uWSGI简介,安装与配置 Nginx安装与配置 Nginx+uWSGI+Django原理解析 1.django简介,环 ...
- debian完整部署 Nginx + uWSGI + Django
手工部署一个Django服务器真心不容易,需要安装很多东西.从头开始搭建服务器,主要是为了梳理一下后续开发中一般为碰到的平台部署.对后续问题的解决有一定帮助. 通常部署有2中方式: 一种是使用现成提供 ...
- Nginx+uwsgi+Django 的web应用环境部署-完整记录
Python作为当前最火爆最热门,也是最主要的Web开发语言之一,在其二十多年的历史中出现了数十种Web框架,比如Django.Tornado.Flask.Twisted.Bottle和Web.py等 ...
- Nginx+uWSGI+Django部署web服务器
目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...
- [技术博客]ubuntu+nginx+uwsgi+Django+https的部署
ubuntu+nginx+uwsgi+Django+https部署文档 配置机器介绍 操作系统:Ubuntu 18.04.2 LTS 64位 python版本:Python 3.6.7 Django版 ...
- Nginx+uWSGI+Django环境配置
通常项目会部署在虚拟环境,虚拟环境的使用可以参考这里,点击前往 当然你也可以直接部署,这里不多说. 一.安装uWSGI 1.通过pip安装 pip install uwsgi 这里只说明了一种安装方式 ...
- nginx+uwsgi+django部署流程
当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...
- 使用Nginx+uWSGI+Django方法部署Django程序
第一步先解决uwsgi与django的桥接.解决在没有nginx的情况下,如何使用uwsgi+DJANGO来实现一个简单的WEB服务器. 第二步解决uwsgi与Nginx的桥接.通过nginx与uws ...
随机推荐
- 2017.9.14 HTML学习总结---超链接标签图片标签
2.4 超链接标签 定义:它是指从一个对象指向另一个对象的指针,它可以是网页中的一段文字 也可以是一张图片,以实现从一个页面到另一个页面的跳转. 格式:<a href="url&qu ...
- 搭建ssm中遇到的问题
1.多模块pom.xml文件无效 原因是没有指定模块
- input或其他元素的左上角和左下角单独圆角实现
border-bottom-left-radius:6px;/*左下角圆角*/ border-top-left-radius: 6px;/*左上角圆角*/
- 用IDEA搭建基于maven的springboot项目
第一步:新建一个Project 第二步:选择Spring Initializr和SDK 然后next 第三步:修改Group和Artifact 第四步:按自己的需求选,这里我选的是Web,然后ne ...
- 通过tomcat配置访问本机资源
背景:在最近的项目中使用海康威视的摄像机,在项目预算中没有购买对应的硬盘录像机,但是由于客户需要能够进行视频的回放功能,所以直接采用了海康提供的视频管理客户端直接进行视频录像,然后保存在本机进行播放. ...
- ofbiz最新版13.07.01环境搭建、安装(linux环境下)
一.软件必备: 1.jdk1.7 2.mysql5.6 3.安装tomcat 二.安装: 1.安装 JDK1.7 2.安装mysql数据库 3.下载apache-ofbiz-13.07.01.zip ...
- html中table,tr,td
table表格,tr表格中的行,tr表格中的列,等级关系是table>tr>td, 当然表格中还包括thead,tbody,tfoot,th,但由于浏览器支持缘故很少使用.另外table在 ...
- python--re(匹配字符串)
\d 匹配任何十进制数:它相当于类 [0-9]. \D 匹配任何非数字字符:它相当于类 [^0-9]. \s 匹配任何空白字符:它相当于类 [ fv]. \S 匹配任何非空白字符:它相当于类 [^ f ...
- 【CSS】多行溢出显示省略号
display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3;//超出三行隐藏 overflow: hidden; ...
- 数据结构学习-BST二叉查找树 : 插入、删除、中序遍历、前序遍历、后序遍历、广度遍历、绘图
二叉查找树(Binary Search Tree) 是一种树形的存储数据的结构 如图所示,它具有的特点是: 1.具有一个根节点 2.每个节点可能有0.1.2个分支 3.对于某个节点,他的左分支小于自身 ...