在ubuntu16上进行nginx+uwsgi+django部署的简要步骤
网上有很多部署教程,说了一大堆,遇到坑还是要自己一个个解决,这里有几个比较重要的坑大家一定要注意。
1、首先要安装python和python-dev环境,如果没有安装python-dev后面安装有些依赖要报错。这是第一个坑。
apt-get install python python-dev pip
2、安装uwsgi要先安装gcc的编译环境。这是第二个坑。如果不安装gcc运行uwsgi也不会报错,后台进程就是不启动。
我被这个坑了很久。
apt-get install gcc
3、找一个目录,上传你Django程序。我习惯打成zip上传,那么服务器上再安装一个unzip
apt-get install unzip
4、在Django项目目录下安装依赖。
pip install -r XXX.txt
5、安装uwsgi
pip install uwsgi
6、在项目目录下新建一个uwsgi.ini文件,写入以下代码。
[uwsgi]
socket=外网ip:端口(使用nginx连接时,使用socket)
http=外网ip:端口(直接做web服务器,使用http)
chdir=项目根目录
wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
7、测试时注释掉socket,用http方式能否运行Django成功。如果不能,那么很可能是你程序上有问题,要调试成功后才开始配置nginx。否则到时候报错,你不知道到底是哪个环节出了问题。
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
8、uwsgi通过http配置成功后,就开始安装nginx。
apt-get install nginx
9、这种方式安装好nginx后,一般情况下进入/etc/nginx/sites-available编辑,修改以下代码为你网站的相关信息。
server_name localhost blog.com; #在这里配置你的域名或是IP访问地址。
location / {
uwsgi_pass 127.0.0.1:8000;
include /etc/nginx/uwsgi_params;
}
location /media {
alias /home/media; #你的项目media静态文件目录。
}
location /static {
alias /home/static; #你的项目static静态文件目录。
}
10、配置后nginx,那么要修改uwsgi.ini文件,协议使用stock方式,注释掉http。
service nginx start
对外暴露访问端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
11、到这里大功告成!!后续优化:
A. 其实每次重启服务器还要运行nginx和uwsgi的启动命令挺麻烦,我们可以写一个sh脚本。比如start.sh,代码如下:
uwsgi --ini /home/uwsgi.ini #你的配置文件绝对路径。
service nginx start
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
B. vim etc/rc.local 文件写入以下代码。
sudo sh /home/start.sh #你的脚本绝对路径。
这样每次重启服务器,网站就自动运行了。呵呵。
本文来自:http://herostore.cn/article/11/
在ubuntu16上进行nginx+uwsgi+django部署的简要步骤的更多相关文章
- Nginx+uWSGI+Django部署web服务器
目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...
- nginx+uwsgi+django部署流程
当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...
- nginx+uwsgi+django 部署原理
python开发群里经常有同学问 nginx+uwsgi+django 着了教程部署,但是不知道他们之间怎么样的关系,于是我就google到了一个让我看起来很认同的图,大家看了也比较认同,于是就分享出 ...
- ubuntu16.4+nginx+uwsgi+Django 部署上线
Nginx概述 Nginx是一款轻量级的HTTP服务器,采用事件驱动和异步非阻塞处理方式框架,这让其具有极好的IO性能,市场用于服务端的反向代理和负载均衡 Nginx优点 高并发连接:官方测试Ngin ...
- 10、nginx+uwsgi+django部署(动静分离)
10.1.说明: 1.介绍: 创建Django项目,可以通过 pyhon3 manage.py runserver 0.0.0.0:8080 & 命令更方便地调试程序,但是如果当一个项目完成了 ...
- Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境
首先准备环境: 1.使用虚拟机 VMware Workstation Pro (也可以不用),安装Ubuntu-18.04.2系统 开始搭建环境 (因为ubuntu18.4.2集成了python3.6 ...
- 在阿里云 Ubuntu上通过nginx+uwsgi服务器部署Django出现的502错误
https://blog.csdn.net/luojie140/article/details/76919471 https://blog.csdn.net/sinat_21302587/articl ...
- ubantu+nginx+uwsgi+django部署
1.更新ubantu的apt apt-get update 必要时候更新系统: apt-get upgrade 2.远程连接服务器 ssh 用户名@ip 上传代码 : scp ...
- 使用docker-compose+nginx+uwsgi+django部署项目
(1)centos上下载docker + docker-compose (2)基础目录 (3)首先创建一个纯净的python+django+uwsgi的镜像,便于后期使用(也可不用创建,后期docke ...
随机推荐
- django 多数据分库
路由策略 # -*- coding: utf-8 -*- from django.conf import settings class DatabaseAppsRouter(object): &quo ...
- Squeeze-and-Excitation Networks
Squeeze-and-Excitation Networks Paper 近些年来,卷积神经网络在很多领域都取得了巨大的突破.而卷积核作为卷积神经网络的核心,通常被看做是在局部感受野上,将空间上(s ...
- MySQL的redo log结构和SQL Server的log结构对比
MySQL的redo log结构和SQL Server的log结构对比 innodb 存储引擎 mysql技术内幕 log buffer根据一定规则将内存中的log block刷写到磁盘,这个规则是 ...
- chm帮助文档制作及C#调用
http://zhoufoxcn.blog.51cto.com/792419/166049 http://wenku.baidu.com/view/a90adbd249649b6648d74794.h ...
- 第一个Shader程序
fx文件: float4x4 matWorld; float Time=1.0f; struct VS_OUTPUT { float4 Pos :POSITION; float4 Color :COL ...
- layer官方演示与讲解(jQuery弹出层插件)
1. 使用layer遇到困难?Fly社区虔诚为您解惑 2. layer 2.0 发布,以独立形式呈现的最后一个版本 3. Fork layer on Github,爱她,就给她加个星啵 当前版本:2. ...
- cocos-lua基础学习(七)Scene类学习笔记
local scene = cc.Scene:create() cc.Director:getInstance():replaceScene( scene ) cc.Director:getInsta ...
- VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)
属性页对话框包括向导对话框和一般属性页对话框两类,上一节鸡啄米讲了如何创建并显示向导对话框,本节将继续介绍一般属性页对话框的创建和显示. 实际上,一般属性页对话框的创建和显示过程和向导对话框是很类似的 ...
- HDU - 2844 Coins(多重背包+完全背包)
题意 给n个币的价值和其数量,问能组合成\(1-m\)中多少个不同的值. 分析 对\(c[i]*a[i]>=m\)的币,相当于完全背包:\(c[i]*a[i]<m\)的币则是多重背包,考虑 ...
- springcloud15---zuul-fallback
package com.itmuch.cloud; import org.springframework.boot.SpringApplication; import org.springframew ...