由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在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)的更多相关文章

  1. Ubuntu16.04下KeepAlived+Nginx 布署

    前言         网上已经有很多相关文章,对各种概念介绍的比较清楚,也有各种详细的步骤,这里主要记录本要在ubuntu16.04下的布署过程,主要记录编译安装keepalived时遇到的坑及解决办 ...

  2. Ubuntu16.04下搭建mysql + uwsgi + nginx环境启动flask 项目

    1.安装mysql Sudo apt-get install mysql 配置mysql的数据存储路径,默认在 /var/lib/mysql sudo cp -R /var/lib/mysql/* / ...

  3. ubuntu16.04下部署tomcat9和java8启动一次需要七八分钟

    一.环境如下 Ubuntu16.04  +tomcat9+openjdk1.8 二.问题 在tomcat的bin下执行./startup.sh 如下图没有问题 root@bogon:/usr/apac ...

  4. Ubuntu16.04下部署golang开发环境

    一.需要文件 golang http://www.golangtc.com/download liteide http://www.golangtc.com/download/liteide 二.安装 ...

  5. Ubuntu16.04下安装nginx+mysql+php+redis

    一.redis简介 Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记 ...

  6. Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  7. Ubuntu16.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

  8. Ubuntu16.04下Mongodb官网卸载部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐) https://docs.mongodb.com/manual/tutorial/ins ...

  9. Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...

随机推荐

  1. noip 2012 开车旅行

    /*考场上写的暴力 40分钟70分*/ #include<iostream> #include<cstdio> #include<cstring> #define ...

  2. codevs 1173 最优贸易(DP+SPFA运用)

    /* 中国的题目 ——贱买贵卖 0.0 这题wa了好多遍 第一遍看着题 哎呀这不很简单嘛 从起点能到的点都是合法的点 然后统计合法的点里最大最小值 然后printf 也不知道哪里来的自信 就这么交了 ...

  3. 自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用

    闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分 ...

  4. Arcgis Android 基本概念 - 浅谈

    MapView     MapView 是 Android 中 ViewGroup的子类,也是 ArcGIS Runtime SDK for Android 中的地图容器,与很多 ArcGIS API ...

  5. C# LINQ 基本操作实例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. NetBeans使用技巧记录

    1.窗体字体大小设置: 在etc文件夹下的netbeans.conf中添加,12表示字体大小,12正合适. netbeans_default_options="--fontsize 12 - ...

  7. mysql死锁--源于外键关联

    死锁 存在于行级锁 存在的条件 1.资源只能同时被一个线程占有 2.资源占有不能被强制剥夺 3.请求和保持占有(在请求占有资源的同时能保持现有资源的占有) 4.死循环(一般做程序的人最关注的点) 一到 ...

  8. 武汉科技大学ACM:1010: 电话号码

    Problem Description LXD打算换个手机号码,但是他去营业厅选号码的时候却把移动的客服小姐烦得不行,因为他太挑三捡四啦.对于一个手机号的后六位数字(前面五位他就无所谓了),LXD有很 ...

  9. 六种方式实现hibernate查询

    最近在学习Hibernate的基本内容,刚好在项目中有用到,基本上都是用到哪就学哪. 今天看看六种方式实现hibernate查询......... 分别是HQL查询,对象化查询Criteria方法,动 ...

  10. android 手机信息获取

    1. adb已安装 2. adb shell getprop 此时已列出所有相关信息