Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)
由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题。前提是安装有虚拟环境pyenv+virtualenv。
一、安装uwsgi
1. 在虚拟环境下安装uwsgi
# 启动环境
pyenv activate your_env_name
3 pip install uwsgi
2. 测试uwsgi,创建test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello uwsgi!"]
3. uwsgi运行该文件
当时用的命令: uwsgi --http :8088 --wsgi-file test.py, 终端提示没有--wsgi-file选项,一直不成功,后来改用 --http-socket可以了。但是现在试了--http竟然也可以运行了,竟然不知道当初为什么不行。
uwsgi --http-socket : --wsgi-file test.py
二、安装nginx
1.nginx不需要在虚拟环境下装,在终端直接用命令安装
sudo apt-get install nginx
2.nginx启动与关闭命令
cln@Aspire:~$ service nginx start #启动
cln@Aspire:~$ service nginx stop #关闭
cln@Aspire:~$ service nginx restart #重启 nginx -t # 检查配置文件是否有语法错误
cln@Aspire:~$ nginx -V #查看nginx版本
nginx version: nginx/1.10. (Ubuntu)
built with OpenSSL 1.0.2g-fips Mar
TLS SNI support enabled
3.修改nginx默认端口
nginx1.10.0版本 配置文件有/etc/nginx/nginx.conf, /etc/nginx/conf.d/* 和 /etc/nginx/sites-available下的default, nginx.conf包含default、conf.d里的配置,端口号在default文件里修改。
打开nginx文件夹下default文件,修改其端口号为88,如下,端口已改好
cln@Aspire:~$ sudo gedit /etc/nginx/sites-available/default

4.重启nginx服务,访问http://127.0.0.1:8088, 会打开nginx欢迎welcome页面。
三、部署django+uwsgi+nginx
1. 在你的django项目文件夹下建立 yourProjectName_uwsgi.ini文件,具体的参数配置如下:最重要的是配置pythonpath,它指定django所在的位置,当时没有配置准确这一点,一直报错no moudle django,花了很长时间也不知道为什么,后来查了很多资料后,才知道配置pythonpath。主要的参数有注释。

当时 socket = :8088, 我写的是http-socket = :8088, 一直报错 502 Bad Gateway,花了很长时间后才知道把这句改成socket。
2. 之前提到nginx.conf配置所包含的配置,那就可以在/etc/nginx/conf.d下建一个nginx.conf来关联uwsgi
cln@Aspire:~$ sudo vi /etc/nginx/conf.d/nginx.conf
在里面添加如下内容:

3.重启nginx服务,激活虚拟环境,运行.ini文件
# 激活虚拟环境
cln@Aspire:~/PycharmProjects/webapp$ pyenv activate webenv
# 在.ini文件的父目录下运行命令
(webenv) cln@Aspire:~/PycharmProjects/webapp$ uwsgi --ini web_uwsgi.ini
如下所示,表示成功。

访问http://127.0.0.1:88, 便可以通过nginx访问到你的django项目的网站。
总结: 一点粗心大意,就会让你花费很多时间去找问题所在,现在我写下自己遇到的问题以及解决方法,希望能帮助遇到类似问题的你。
Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)的更多相关文章
- Ubuntu16.04下KeepAlived+Nginx 布署
前言 网上已经有很多相关文章,对各种概念介绍的比较清楚,也有各种详细的步骤,这里主要记录本要在ubuntu16.04下的布署过程,主要记录编译安装keepalived时遇到的坑及解决办 ...
- Ubuntu16.04下搭建mysql + uwsgi + nginx环境启动flask 项目
1.安装mysql Sudo apt-get install mysql 配置mysql的数据存储路径,默认在 /var/lib/mysql sudo cp -R /var/lib/mysql/* / ...
- ubuntu16.04下部署tomcat9和java8启动一次需要七八分钟
一.环境如下 Ubuntu16.04 +tomcat9+openjdk1.8 二.问题 在tomcat的bin下执行./startup.sh 如下图没有问题 root@bogon:/usr/apac ...
- Ubuntu16.04下部署golang开发环境
一.需要文件 golang http://www.golangtc.com/download liteide http://www.golangtc.com/download/liteide 二.安装 ...
- Ubuntu16.04下安装nginx+mysql+php+redis
一.redis简介 Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记 ...
- Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...
- Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...
- Ubuntu16.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 前期博客 Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...
- Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...
随机推荐
- mysqlbinlog查看 binlog日志报错mysqlbinlog: unknown variable 'default-character-set=utf8mb4'
今天,查看mysql slave节点 binlog日志信息时,执行mysqlbinlog命令报错mysqlbinlog: unknown variable 'default-character-set ...
- UWP APP 开发日记
最近需要使用C#开发UWP应用,以前学习过C,这回就是快速看了一下C#的一些特别之处,然后就进入到了实战练习当中. 1.按照MSDN的教程自己搭建了一个简单的“Hello, world”应用.是使用C ...
- repeater 分页显示数据
表名:ChinaStates 控件:Repeater 查询代码DA: public class ChinaStatesDA { private DataClassesDataContext Conte ...
- linux下查看已经安装的jdk 并卸载jdk
一.查看Jdk的安装路径: whereis javawhich java (java执行路径)echo $JAVA_HOME echo $PATH 备注:如果是windows中,可以使用: set j ...
- MySQL慢查询详解
分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”. 查看/设置“慢查询”的时 ...
- ORACLE调度之基于时间的调度(一)【weber出品】
一.调度的概述 这里我看到一篇对调度的概述觉得描述的比我好,但仅限于概述部分,其他部分我觉得我讲的比他好,于是发生以下事情: ************************华丽的转载******** ...
- Entity Framework 的枚举类型
新增数据模型,新增“实体”之后,新增“枚举类型”,创建Enum值,将“实体”中的列和Enum关联,选中“实体”中的列属性改变类型为Enum名称,生成数据库…… 如下转自:http://item.con ...
- Android studio 开发环境搭建
Android studio 开发环境搭建 一.环境: 下载java jdk:http://www.oracle.com/technetwork/cn/java/javase/downloads/jd ...
- 关于Jquery EasyUI中的DataGrid服务器端分页随记
一.关于DataGrid的分页和排序参数 对于分页参数不需要用户指定,程序在AJAX请求的时候会带上分页和排序需要的参数 每页显示条数:rows 当前页:page 排序字段:sort [multiS ...
- 使用Office2007向cnblogs.com发布文章
步骤: 在cnblogs.com创建一个博客 在office2007中新建->博客文章->创建. 配置帐户: