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

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. 001-ant design安装及快速入门【基于纯antd的基本项目搭建】

    一.安装使用 1.1.安装 推荐使用 npm 或 yarn 的方式进行开发 npm install antd --save yarn add antd 1.2.浏览器引入 在浏览器中使用 script ...

  2. /etc/rc.d/rc.local linux启动自动开启某些服务(转)

    /etc/rc.d/rc.local似乎是很多Linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务.程序等,只要系统没有提供Sys V风格的启动脚本,就把这些需求都塞到/etc/rc.d/rc ...

  3. http webservice socket的区别

    1 数据传输方式1.1 socket传输的定义和其特点    所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有udp和tcp两个协议. ...

  4. Thread的六中状态

    线程共有6种状态:在某一时刻只能是这6种状态之一.这些状态由Thread.State这个枚举类型表示,并且可以通过getState()方法获得当前线程具体的状态类型. NEW:至今尚未启动的线程的状态 ...

  5. ZOJ Monthly, March 2018 Solution

    A - Easy Number Game 水. #include <bits/stdc++.h> using namespace std; #define ll long long #de ...

  6. hdu5009

    这题说的是给了一个  长度为n(n<=50000)的数列,数列表示的是给每个珍珠涂的颜色,任务是将一窜长度为n的珍珠涂成他所要的颜色.然后你可以操至多n次, 每次画只能画连续的区间,每次操作是的 ...

  7. Fms3和Flex打造在线视频录制和回放

    本博推荐文章快速导航: Sql Server2005 Transact-SQL 新兵器学习MCAD学习 代码阅读总结 ASP.NET状态管理 DB(数据库)WAPWinFormFlex,Fms aie ...

  8. Linux /python --- zipinfo命令

    Linux zipinfo命令用于列出压缩文件信息. 执行zipinfo指令可得知zip压缩文件的详细信息. zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本 ...

  9. java -- JVM的符号引用和直接引用

    在JVM中类加载过程中,在解析阶段,Java虚拟机会把类的二级制数据中的符号引用替换为直接引用. 1.符号引用(Symbolic References): 符号引用以一组符号来描述所引用的目标,符号可 ...

  10. POJ 1185 炮兵阵地(状压DP)题解

    思路:和上一篇思路一样,但是这里要求最大能排几个,这里要开三维,记录上次和上上次的状态,再一一判定,状态转移方程为 dp[i][j][k] = max(dp[i][j][k],dp[i - 1][k] ...