版权声明:本文为博主原创文章,转载请注明出处: http://blog.youkuaiyun.com/lihao21 或 leehao.me
本文讲述了如何使用virtualenv, uwsgi, nginx来布署flask的步骤。
升级软件包
执行以下命令,保证你的机器安装了最新的软件包。
sudo apt-get update
sudo apt-get upgrade
安装python和virtualenv
sudo apt-get install build-essential python-dev python-pip
sudo pip install virtualenv
创建存放网站的目录
例如,在/home/gzlihao/webservice目录下创建mysite目录
mkdir mysite
配置virtualenv和安装flask, uwsgi
进入 mysite 目录,然后创建虚拟环境 .env,激活虚拟环境,然后安装flask和uwsgi。
cd mysite
virtualenv .env
source .env/bin/activate
pip install flask
pip install uwsgi
在mysite目录下创建hello.py
hello.py的内容如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
需要注意的是,app.run()
只是开发时测试使用,故需要放置在if __name__ == "__main__"
下,这样uwsgi才不会执行app.run()
方法。而host需要设置为0.0.0.0,表示让flask监听机器的所有ip地址的8080端口。
配置uwsgi
增加配置文件uwsgi.ini,内容如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
启动uwsgi
uwsgi –ini uwsgi.ini
(注意参数是两个 -
然后加上ini
,该死的优快云,我都打两个 -
了,还是显示一个 :()
可以看到mysite目录下新增了以下文件
mysite.sock
以及uwsgi.log
安装nginx
deactivate
sudo apt-get install nginx
配置nginx
在/etc/nginx/sites-availabel目录下创建mysite.conf文件,内容如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
为了使用这个配置文件生效,创建mysite.conf的链接文件:
cd /etc/nginx/sites-enabled
ln -s ../sites-available/mysite.conf mysite.conf
nginx重启
重启前先对nginx配置进行语法检查
nginx -t
然后对nginx进行平滑重启
kill -HUP 27198
其中27198 为nginx主进程号,可以使用ps -efl | grep nginx | grep master
获取
访问网站
编辑C:\Windows\System32\drivers\etc\hosts
文件,增加一项
[布署mysite的ip地址] www.mysite.com
例如
192.168.229.166 www.mysite.com
打开浏览器,输入www.mysite.com
,回车,即可以看到输出结果。
转自:http://blog.youkuaiyun.com/lihao21