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

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. Scrapy框架(3)

    一.如何提升scrapy框架的爬取效率 增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_REQUESTS = 100,并发设 ...

  2. POJ2195:Going Home(费用流入门)

    http://poj.org/problem?id=2195 #include <iostream> #include <stdio.h> #include <strin ...

  3. http-从域名到页面

    目录 1. 网络基础 TCP/IP HTTP DNS URI, URL, and URN URI的格式 2. HTTP简单概括 通过实例看HTTP HTTP报文组成 3. 使用Firefox修改请求首 ...

  4. SLG手游Java服务器的设计与开发——数据管理

    文章版权归腾讯GAD所有,禁止匿名转载:禁止商业使用:禁止个人使用. 一.前言 上文介绍了我们的SLG手游的服务器架构设计以及网络通信部分,本文介绍数据管理部分,在数据存储方面,我选择了Mysql.M ...

  5. uva11324 有向图的强连通分量+记忆化dp

    给一张有向图G, 求一个结点数最大的结点集,使得该结点集中任意两个结点u和v满足,要么u可以到达v, 要么v可以到达u(u和v相互可达也可以). 因为整张图可能存在环路,所以不好使用dp直接做,先采用 ...

  6. Codeforces Round #265 (Div. 2) E

    这题说的是给了数字的字符串 然后有n种的操作没次将一个数字替换成另一个字符串,求出最后形成的字符串的 数字是多大,我们可以逆向的将每个数推出来,计算出他的值和位数记住位数用10的k次方来记 1位就是1 ...

  7. pycharm添加git ignore

    pycharm现在提供了git ignore,很方便 从这里下载扩展 https://plugins.jetbrains.com/plugin/7495--ignore 放到pycharm根目录\pl ...

  8. Java实现动态规划法求解0/1背包问题

    摘要: 使用动态规划法求解0/1背包问题. 难度: 初级 0/1背包问题的动态规划法求解,前人之述备矣,这里所做的工作,不过是自己根据理解实现了一遍,主要目的还是锻炼思维和编程能力,同时,也是为了增进 ...

  9. iframe 跨域问题解决方案 利用window.name+iframe跨域获取数据详解

    详解 前文提到用jsonp的方式来跨域获取数据,本文为大家介绍下如何利用window.name+iframe跨域获取数据. 首先我们要简单了解下window.name和iframe的相关知识.ifra ...

  10. Sublime Text 3 插件的安装、升级和卸载

    Sublime Text 3 插件的安装.升级和卸载 快捷键:ctrl+shift+p打开命令面板,如图: 1,插件安装: 输入:install ,选择“Install package” ,如图: 然 ...