网上有很多部署教程,说了一大堆,遇到坑还是要自己一个个解决,这里有几个比较重要的坑大家一定要注意。

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部署的简要步骤的更多相关文章

  1. Nginx+uWSGI+Django部署web服务器

    目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...

  2. nginx+uwsgi+django部署流程

    当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...

  3. nginx+uwsgi+django 部署原理

    python开发群里经常有同学问 nginx+uwsgi+django 着了教程部署,但是不知道他们之间怎么样的关系,于是我就google到了一个让我看起来很认同的图,大家看了也比较认同,于是就分享出 ...

  4. ubuntu16.4+nginx+uwsgi+Django 部署上线

    Nginx概述 Nginx是一款轻量级的HTTP服务器,采用事件驱动和异步非阻塞处理方式框架,这让其具有极好的IO性能,市场用于服务端的反向代理和负载均衡 Nginx优点 高并发连接:官方测试Ngin ...

  5. 10、nginx+uwsgi+django部署(动静分离)

    10.1.说明: 1.介绍: 创建Django项目,可以通过 pyhon3 manage.py runserver 0.0.0.0:8080 & 命令更方便地调试程序,但是如果当一个项目完成了 ...

  6. Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境

    首先准备环境: 1.使用虚拟机 VMware Workstation Pro (也可以不用),安装Ubuntu-18.04.2系统 开始搭建环境 (因为ubuntu18.4.2集成了python3.6 ...

  7. 在阿里云 Ubuntu上通过nginx+uwsgi服务器部署Django出现的502错误

    https://blog.csdn.net/luojie140/article/details/76919471 https://blog.csdn.net/sinat_21302587/articl ...

  8. ubantu+nginx+uwsgi+django部署

    1.更新ubantu的apt apt-get update 必要时候更新系统:      apt-get upgrade 2.远程连接服务器 ssh 用户名@ip 上传代码 :        scp ...

  9. 使用docker-compose+nginx+uwsgi+django部署项目

    (1)centos上下载docker + docker-compose (2)基础目录 (3)首先创建一个纯净的python+django+uwsgi的镜像,便于后期使用(也可不用创建,后期docke ...

随机推荐

  1. mysql float 浮点型

    定点数类型 DEC等同于DECIMAL 浮点类型:FLOAT DOUBLE 作用:存储薪资.身高.体重.体质参数等 m,d 都是设置宽度 =============================== ...

  2. mysql 数据操作 多表查询 准备

    为什么需要多表查询: 因为我们不可能把所有数据都放在一张表里 我们把不同数据存储 放在一张一张不同表 方便管理,但我们为了方便管理,把数据拆分到一张一张表去存储. 但是数据还是一个整体,数据之间是有关 ...

  3. 003-and design-在create-react-app项目中使用antd

    一.概述 create-react-app 是业界最优秀的 React 应用开发工具之一,本文会尝试在 create-react-app 创建的工程中使用 antd 组件,并自定义 webpack 的 ...

  4. Python---1. 基础数据类型

    转载:  Py西游攻关之基础数据类型

  5. mariadb10.1.13GTID实现主从复制

    ---恢复内容开始--- 环境:centos6.5       mariadb:10.1.13-MariaDB GTID:GTID是有服务器的UUID和事务序号组成的唯一事务序号 ---UUID:N ...

  6. ReactNative生成android平台的bundle文件命令

    ReactNative生成android平台的bundle文件命令 2016年11月03日 23:23:28 阅读数:4869 注:如果assets文件没有正确生成,需要手机创建或授权 网上的其它的很 ...

  7. 6.MySQL必知必会之数据过滤-WHERE组合子句

    数据过滤-WHERE组合子句 本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件. 我们还将学习如何使用NOT和IN操作符. 1.组合WHERE子句 上一章介绍的WHERE子句在过滤数据时 ...

  8. Winform开发之ComboBox和ComboBoxEdit控件绑定key/value数据

    使用 ComboBox 控件绑定key/value值: 因为 ComboBox 是有 DataSource 属性的,所以它可以直接绑定数据源,如 DataTable.ListItem 等. 使用 Da ...

  9. Excel error 64-bit version of SSIS

    问题是 在windows server 2008 64位的计划任务执行 ssis 的错误 ,ssis你们带有读取excel 日期 2015/3/17 11:50:34日志 作业历史记录 (SSIS_U ...

  10. Object-C开发之instancetype和id关键字

    一.什么是instancetypeinstancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象.我们都知道未知类型的的对象可以用 ...