欢迎各界计算机爱好者加入,弘扬极客精神!

有没有能快速部署flask+uwsgi+nginx的方法?

0 喜欢 0 不喜欢

最近在学习python
在阿里云上ubuntu试着部署uwsgi这个麻烦的玩意儿。。
搞了好几次都是有问题。。

有没有更快捷的方式适合没玩过部署的小白弄呢?谢谢

 

 

最新提问 5月 20, 2016 分类:Linux | 用户: wyj557 (3,674 分)  

登录 或者 注册 后回答这个问题。

10 个回答

0 喜欢 0 不喜欢

 

Docker hub 上就有 docker-flaskimage 上面已经部署好了 nginx uwsgi

最新回答 5月 20, 2016 用户: 月汐 (6,140 分)  
0 喜欢 0 不喜欢
如果操作系统一致,硬件环境一致的话,可以在一台机器上编译,然后打个包,传到其他机器也能运行,如果是云服务并且钱够,可以做个云服务系统镜像,再不然就是docker了
最新回答 5月 21, 2016 用户: 月影千姿 (2,020 分)  
0 喜欢 0 不喜欢

Tornado+flask+supervisord

最新回答 7月 18, 2016 用户: big and small (4,716 分)  
0 喜欢 0 不喜欢

docker啊,最糙的也可以fabric

最新回答 12月 6, 2016 用户: big and small (4,716 分)  
0 喜欢 0 不喜欢
  • 在服务器上安装LNMP包
  • 安装uwsgi
  • 配置

步骤:

  • 安装LNMP包

这个包包含了nginx/MySQL这些,直接安上即可,具体就请移步到官网(http://lnmp.org/install.html),跟着教程做吧….(嘿嘿)….

  • 安装uwsgi

安装也很简单,直接一个命令就解决了~~

pip install uwsgi
  • 配置
    1.uwsgi配置:
    uwsgi_config.ini,我是放在我的网站文件夹中的(/web/uwsgi_config.ini),想着方便管理一点儿
[uwsgi]
socket = 127.0.0.1:9090
chdir = /home/www/web
wsgi-file = View.py
callable = app
processes = 4
threads = 2
stats = 127.0.0.1:9191

上面便是我的配置,其中socket是用来uwsgi与nginx之间通信的,所以要记住哟,后边儿要用这个,然后chdir是你的项目的文件夹,wsgi-file便是启动文件哟

2.nginx配置:(nginx.conf)

server{
    listen 80;
    server_name  www.example.cc;

    location /{
        include uwsgi_params;
        uwsgi_pass  127.0.0.1:9090;
        uwsgi_param   UWSGI_PYHOME /home/www/web/venv;
        uwsgi_param   UWSGI_CHDIR  /home/www/web;
        uwsgi_param   UWSGI_SCRIPT  View:app;
    }
}

看到这上面这个配置,一下又让我想到了当时自己以为server_name那里自己随便取个就行了….╮(╯▽╰)╭(基础太差…太菜……),在上面这个配置中UWSGI_PYHOME这项如果flask项目没有采用virtualenv貌似就不用写的,自我理解的是这个参数为了让uwsgi在运行flask项目的时候使用虚拟环境中的pyhon来解析~~
nginx.conf这个文件,我也是放在flask项目的根目录,便于管理,因为我配置的这个服务器上已经存在一个项目了,占用着80端口,所以这里又涉及到了nginx多个域名解析的操作,其实很简单,操作如下:

  • 在nginx的conf文件夹中新建一个文件夹vhost
mkdir /usr/local/nginx/conf/vhost
  • 打开nginx.conf文件,然后在http{}的最后添加’include vhost/*.conf’
vim /usr/local/nginx/conf/nginx.conf
#添加include vhost/*.conf到http,如下:
...
http{
    ...
    include vhost/*.conf;
}
...
  • 最好执行如下命令即可完成配置:
sudo ln -s /home/www/web/nginx.conf /usr/local/nginx/conf/vhost
  • 以上几个步骤已经能够让服务器跑起来了,只是还需要一个东东才更方便,那便是supervisor,用它来引导uwsgi,它能够让uwsgi随同服务器启动并作为后台服务运行.
安装supervisor
sudo apt-get install supervisor
配置supervisor
[program:manager]
command = /home/www/web/venv/bin/uwsgi /home/www/web/uwsgi_config.ini
directory = /home/www/web
user = root
autostart = true
autorestart = true
stdout_logfile = /home/www/web/logs/uwsgi_supervisor.log

将上边儿这段代码保存为/home/www/web/supervisor.conf(还是保存在了我的网站根目录,接着执行下面命令,将它链接到/etc/supervisor/conf.d文件夹中

sudo ln -s /home/www/web/supervisor.conf /etc/supervisor/conf.d

最后启动supervisor,以及重启nginx

sudo service supervisor start
sudo service nginx restart
最新回答 12月 7, 2016 用户: weini520aou (672 分)  
0 喜欢 0 不喜欢
最新回答 12月 7, 2016 用户: Re (2,896 分)  
0 喜欢 0 不喜欢
https://segmentfault.com/a/1190000002411626

这个网站的讲解很详细,希望能帮到你
最新回答 12月 7, 2016 用户: Megan (2,582 分)  
0 喜欢 0 不喜欢

Docker hub 上就有 docker-flaskimage 上面已经部署好了

最新回答 12月 7, 2016 用户: Cunese (5,302 分)  
0 喜欢 0 不喜欢
最新回答 1月 22 用户: OptimisticE (2,220 分)  
0 喜欢 0 不喜欢
http://www.jianshu.com/p/84978157c785  这里可以看一下
最新回答 1月 23 用户: ywen232622 (1,414 分)  
...