参考
https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-ubuntu-16-04

1.安装pip

sudo apt-get update
sudo apt-get install python-pip

如果您使用python3
sudo apt-get update
sudo apt-get install python3-pip

2.使用pip 安装virtualenv 和 virtualenvwrapper

sudo pip install virtualenv virtualenvwrapper

如果您使用python3

sudo pip3 install virtualenv virtualenvwrapper

问题:locale.Error: unsupported locale setting
解决:

sudo apt-get install language-pack-id
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

3.配置环境变量

echo "export WORKON_HOME=~/Env" >> ~/.bashrc
echo "source /usr/local/bin/ virtualenvwrapper.sh" >> ~/.bashrc

4.初始化脚步

source ~/.bashrc

5.创建虚拟目录

mkvirtualenv firstsite

6.安装django

pip install django

7.创建django项目

cd ~
django-admin.py startproject firstsite

8.初始化django项目

cd ~/firstsite
./manage.py migrate
./manage.py createsuperuser

9.修改项目static

nano firstsite/settings.py

在settings.py中

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')

10.收集一下静态文件

./manage.py collectstatic

11.更新一下防火墙

sudo ufw allow 8080

12.运行一下项目

./manage.py runserver 0.0.0.0:8080

13.浏览器里查看一下

http://域名或ip:8080

14.退出virtualenv环境

deactivate

如果您想再次进入可以 workon firstsite

15.安装uWSGI

sudo apt-get install python-dev
sudo pip install uwsgi

16.测试是否安装好了

uwsgi --http :8080 --home /home/guanli/Env/firstsite --chdir /home/guanli/firstsite -w firstsite.wsgi

请注意,将/home/guanli/替换成你自己的路径
测试中admin页面的css可能会无法显示

17.设置配置文件

sudo mkdir -p /etc/uwsgi/sites
cd /etc/uwsgi/sites

18.编写项目ini文件

sudo vi firstsite.ini

[uwsgi]
project = firstsite
uid = guanli
base = /home/%(uid) chdir = %(base)/%(project)
home = %(base)/Env/%(project)
module = %(project).wsgi:application master = true
processes = 5 socket = /run/uwsgi/%(project).sock
chown-socket = %(uid):www-data
chmod-socket = 660
vacuum = true
  1. 创建系统unit file 为uWSGI

    sudo vi /etc/systemd/system/uwsgi.service
    [Unit]
    Description=uWSGI Emperor service [Service]
    ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown guanli:www-data /run/uwsgi'
    ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
    Restart=always
    KillSignal=SIGQUIT
    Type=notify
    NotifyAccess=all [Install]
    WantedBy=multi-user.target

20.配置nginx

sudo apt-get install nginx

21.创建nginx站点

sudo vi /etc/nginx/sites-available/firstsite

server {
listen 80;
server_name waikanvip.com 121.194.213.236; location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/guanli/firstsite;
} location / {
include uwsgi_params;
uwsgi_pass unix:/run/uwsgi/firstsite.sock;
}
}

22.创建软连接到enabled目录

sudo ln -s /etc/nginx/sites-available/  firstsite /etc/nginx/sites-enabled

23.检测一下配置是否正确

sudo ln -s /etc/nginx/sites-available/firstsite /etc/nginx/sites-enabled

24.重启nginx

sudo systemctl restart nginx

25 启动uwsgi

sudo systemctl start uwsgi

26.修改防火墙 nginx策略

sudo ufw delete allow 8080
sudo ufw allow 'Nginx Full'

27.自动启动

sudo systemctl enable nginx
sudo systemctl enable uwsgi

配置完成

ubuntu 16 安装django nginx uWSGI的更多相关文章

  1. Ubuntu系统搭建django+nginx+uwsgi

    1. 在开发机上的准备工作 2. 在服务器上的准备工作 3.安装uwsgi 4.编写uwsgi配置文件,使用配置文件启动uwsgi 5. 安装nginx 6. 收集静态文件 7. 编写nginx配置文 ...

  2. Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...

  3. ubuntu+Django + nginx + uwsgi 部署

    ubuntu+Django + nginx + uwsgi 部署 0.前期准备 注意:以下几件事都必须在激活虚拟环境下完成 运行以下命令生成项目所需的依赖列表,会在项目根目录生成一个requireme ...

  4. 吴裕雄--天生自然Django框架开发笔记:Django Nginx+uwsgi 安装配置

    Django Nginx+uwsgi 安装配置 使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,需要一个可以稳定而持续的服务器,比如 ...

  5. CentOS 6.5下安装Python+Django+Nginx+uWSGI

    1.安装Python31.1先安装zlib库及其他三方库安装uWSGI时需要使用zlib,否则执行python uwsgiconfig.py --build时会报ImportError,就是因为在安装 ...

  6. centos 下部署django nginx+uwsgi

    为了建立一个工作站,也是麻烦了.... 感谢该博主: https://www.cnblogs.com/levelksk/p/7921066.html 1.安装centos 后首先安装python,下载 ...

  7. Install Python+Django+Nginx+UWSGI

    一.软件环境: CentOS6.6_64bit 需要用到的软件: [root@django tools]# ll 总用量 33336 -rw-r--r-- 1 root root 7497785 3月 ...

  8. CentOS上部署Django+Nginx+Uwsgi环境

    在CentOS上部署Django+Nginx+Uwsgi环境 奇谭  2016-09-01 评论  Linux  python django nginx uwsgi VirtualEnv的作用:创建隔 ...

  9. Linux - 搭建Web项目(Django + nginx + uwsgi)

    工作中碰到需要使用Django + nginx + uwsgi 搭建项目环境 1. 搭建基本环境 需要有python环境,不多做说明 需要安装nginx,不多做说明 需要安装uwsgi: yum in ...

随机推荐

  1. Hadoop2.2.0安装过程记录

    1    安装环境1.1    客户端1.2    服务端1.3    安装准备    2    操作系统安装2.1.1    BIOS打开虚拟化支持2.1.2    关闭防火墙2.1.3    安装 ...

  2. ABP源码分析十四:Entity的设计

    IEntity<TPrimaryKey>: 封装了PrimaryKey:Id,这是一个泛型类型 IEntity: 封装了PrimaryKey:Id,这是一个int类型 Entity< ...

  3. 学习日记-从爬虫到接口到APP

    最近都在复习J2E,多学习一些东西肯定是好的,而且现在移动开发工作都不好找了,有工作就推荐一下小弟呗,广州佛山地区,谢谢了. 这篇博客要做的效果很简单,就是把我博客的第一页每个条目显示在APP上,条目 ...

  4. EventBus总线讲解

    在我们公司经常用到总线,具体的总线是什么让我理解我也不清楚,但是在这几个月下来,我已经知道总线如何使用,现在加上示例讲解总线如何使用. 1. 首先我们的新建一个类,这个类其实是用于总线传递的模型 us ...

  5. JS的Object漫想:从现象到“本质”

    转自:http://zzy603.iteye.com/blog/973649 写的挺好,用于记录,把对象分成概念的Object(var f={})和 类的Object(function F(){}) ...

  6. $.extend({},defaults, options) --(初体验三)

    1.$.extend({},defaults, options) 这样做的目的是为了保护包默认参数.也就是defaults里面的参数. 做法是将一个新的空对象({})做为$.extend的第一个参数, ...

  7. MVC5 网站开发之六 管理员 1、登录、验证和注销

    上次业务逻辑和展示层的架构都写了,可以开始进行具体功能的实现,这次先实现管理员的登录.验证和注销功能. 目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MV ...

  8. Android随笔之——Android时间、日期相关类和方法

    今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...

  9. 批量Shink所有日志或数据文件

    近期,因磁盘空间问题,当执行常规性维护如碎片整理等后会报磁盘空间不足警告,因条件又无法及时添加磁盘空间,这时候不得不对LOG文件做收缩,如果遇到库比较多的实例上,一个一个来却是比较麻烦,可通过如下SQ ...

  10. 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...