资讯专栏INFORMATION COLUMN

使用uwsgi和Nginx部署flask应用

newtrek / 2724人阅读

摘要:最近打算使用搭建一个简单的个人网站,使用部署,在此记录下部署过程。使用启动应用,执行后没有报任何异常即可。或者,在运行之前先将当前虚拟环境加入到中,参考资料快速上手使用启动应用以及配置

最近打算使用python+flask搭建一个简单的个人网站,使用nginx+uwsgi部署,在此记录下部署过程。


环境
ubuntu12.04, python2.7.3, virtualenv1.7.1.2, uwsgi2.0.8

准备
安装virtualenv: 使用virtualenv创建一个独立的python开发环境具有很多好处,ubuntu12.04默认是没有安装的,因此先安装virtualenv: sudo apt-get install virtualenv。安装完成后运行virtualenv ~/demo在我的个人目录下面创建一个名为demo的虚拟环境。
安装uwsgi: 直接使用ubuntu12.04软件包里的uwsgi版本太低,因此需要去uwsgi官网下载最新的版本安装,我的方式是按照文档说明直接使用make命令:

  

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-lastest
make

运行uwsgi --version确认是否安装成功。

开发
cddemo目录,使用source bin/active激活当前的虚拟环境,因为我们需要使用到flask,因此需要在当前环境中安装flask:pip install flask(注意:若未激活当前虚拟环境pip install会默认安装到全局的python环境中,导致permission denied错误) 现在就可以写一个最简单的flask应用了:

   from flask import Flask
   app = Flask(__name__)
   @app.route("/")
   def helloworld():
       return "hello, world."
   

部署
现在使用uwsginginx把helloworld应用部署一下。
先配置nginx,在nginx的conf.d目录下创建一个helloworld.conf文件,然后做如下配置

  

server {
        listen 80;
        server_name 127.0.0.1;
        location /helloworld {
                include uwsgi_params;
                uwsgi_pass unix:/tmp/uwsgi.sock;
        }
}

保存,nginx reload以使上面的配置生效。
使用uwsgi启动helloworld应用:uwsgi -s /tmp/uwsgi.sock --chmod-sock=666 -H /home/victor/demo --module helloworld -callable app, 执行后没有报任何异常即可。
现在在浏览器里输入127.0.0.1/helloworld即可访问helloworld应用,浏览器将显示hello,world.
(注意:由于是在虚拟环境中开发的这个应用,因此在使用uswgi启动引发用时需要使用-H /path/to/virtualenv设置使用当前虚拟环境变量,否则我们只在当前虚拟环境中安装的flask会无法import进来。或者,在运行之前先将当前虚拟环境加入到PYTHONPATH中,export PYTHONPATH=$PYTHONPATH:/home/victor/demo/lib/python2.7/site-packages)

参考资料
flask快速上手
使用uwsgi启动flask应用以及nginx配置
uwsgi document

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39099.html

相关文章

  • CentOS 下用 Nginx uwsgi 部署 flask 项目

    摘要:服务器上部署项目说白了就是让你的项目在这台服务器上运行并且做到可以在公网上访问你的项目。可以解决项目与项目之间对同一个包的不同版本的依赖问题。有可能会报的错是项目相关模块的引入路径不对,修改一下便可。 前一阵自己用flask框架写了一个博客程序,写完之后想部署到服务器上,因为是小白,所以自己google了好些资料,讲的零零碎碎而且有些地方只是告诉你怎么配置,但具体为什么这样配却没有说明...

    shuibo 评论0 收藏0
  • CentOS 下用 Nginx uwsgi 部署 flask 项目

    摘要:服务器上部署项目说白了就是让你的项目在这台服务器上运行并且做到可以在公网上访问你的项目。可以解决项目与项目之间对同一个包的不同版本的依赖问题。有可能会报的错是项目相关模块的引入路径不对,修改一下便可。 前一阵自己用flask框架写了一个博客程序,写完之后想部署到服务器上,因为是小白,所以自己google了好些资料,讲的零零碎碎而且有些地方只是告诉你怎么配置,但具体为什么这样配却没有说明...

    wanghui 评论0 收藏0
  • CentOS 下用 Nginx uwsgi 部署 flask 项目

    摘要:服务器上部署项目说白了就是让你的项目在这台服务器上运行并且做到可以在公网上访问你的项目。可以解决项目与项目之间对同一个包的不同版本的依赖问题。有可能会报的错是项目相关模块的引入路径不对,修改一下便可。 前一阵自己用flask框架写了一个博客程序,写完之后想部署到服务器上,因为是小白,所以自己google了好些资料,讲的零零碎碎而且有些地方只是告诉你怎么配置,但具体为什么这样配却没有说明...

    tuantuan 评论0 收藏0
  • 基于Flask-Angular的项目组网架构与部署

    摘要:基于网,分享项目的组网架构和部署。项目组网架构架构说明流项目访问分为两个流,通过分两个端口暴露给外部使用数据流用户访问网站。通过进行配置,使用作为异步队列来存储任务,并将处理结果存储在中。 基于Raindrop网,分享项目的组网架构和部署。 项目组网架构 showImg(https://cloud.githubusercontent.com/assets/7239657/1015704...

    kelvinlee 评论0 收藏0

发表评论

0条评论

newtrek

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<