flask应用部署到阿里云Ubuntu


阿里云的学生优惠确实给力,一年才90.虽然需要备案才能通过域名访问网站,但是也可以直接用IP访问。于是就先测试下,把一个简单的flask应用扔上去。至于服务器选择ubuntu的原因,毕竟桌面上用ubuntu用的比较多比较熟练,而且ubuntu安装程序配置在某些时候比起centos还是要方便点的。

部署方案设计:

QQ图片20151021183750

web服务器采用nginx,静态文件全部通过nginx直接访问。

wsgi服务器采用gunicorn,gunicorn的配置比较方便使用简单。除此之外还有uwsgi,gevent,cherrypy,mod_wsgi(apache).大家可以自行选择。

虚拟环境:virtualenv(python神器,用过都知道)

进程管理工具:supervisor (能对应用程序进程控制,多应用进程管理,应用中断后快速恢复)

部署过程:

安装软件包:

安装nginx,mongdb(根据自己需求选择),virtualenv,supervisor,git,pip。

安装nginx

sudo apt-get install nginx

安装mongdb

sudo apt-get install mongdb-server

安装git(我们代码通过git放到服务器里)

sudo apt-get install git

安装supervisor

sudo apt-get install supervisor

安装pip工具

sudo apt-get install python-pip

安装神器virtualenv

pip install virtualenv

安装gunicorn

pip install gunicorn

安装的东西就这么多了,安装完成后可以检查一下是否安装成功,运行成功。

部署配置

由于是测试,我就把代码直接放在home里

cd home
git clone XXXXXXXXX

接着配置nginx,进到 /etc/nginx下,ls一下,你会看到sites-available和sites-enabled两个文件夹。你可以打开nginx.conf文件,里面有各个文件的作用。sites-available放置可用的配置文件,sites-enabled下就ln当前启用的配置,方便快速启用,停用。(cenos里nginx配置和ubuntu不同)然后我们进入available下创建一个配置,并且链接到enabled下。

vim todo_app
server {
    listen 80;  

    location /static {
        alias /home/Darkwave/Todo/app/static;
    }

    location / {
        proxy_pass http://127.0.0.1:9000;
    }
}

接着到enabled下链接

cd site-enabled/
ln -s .. /sites-available/todo_app .

nginx的配置就完成了 重启下nginx。(你可能会在sites-available下看到一个default文件,这是nginx默认配置,你可以直接在里面改,或者重命名掉。否则有可能会打开网页一直只出现nginx的欢迎界面)

service nginx reload
service nginx restart

配置supervisor

cd /etc/supervisor
ls
vim supervisor.conf

ls后我们会看到一个文件夹conf.d和一个配置文件,打开配置文件观察后发现conf.d文件夹里存放着应用的配置。
接着进入conf.d创建配置文件

cd conf.d/
vim todo.conf
[program:todo]
command = /home/Darkwave/Todo/venv/bin/gunicorn -b 127.0.0.1:9000 run:app
directory = /home/Darkwave/Todo

OK了,保存退出。supervisorctl命令进入supervisor的控制台。start + 应用名 开启应用。status查看状态。stop + 应用名 停止运行。

QQ图片20151021194210

 

如果没有什么问题,现在就可以在浏览器中输入你的阿里云服务器IP,然后就能看见你的web应用运行在上面。

 

 


文章作者: Nczkevin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Nczkevin !
评论
  目录