使用virtualenv, uwsgi, nginx来布署flask
2015-07-23 15:44
741 查看
版权声明:本文为博主原创文章,转载请注明出处: http://blog.csdn.net/lihao21 或 leehao.me
目录(?)[+]
本文讲述了如何使用virtualenv, uwsgi, nginx来布署flask的步骤。
执行以下命令,保证你的机器安装了最新的软件包。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential python-dev python-pip
sudo pip install virtualenv
例如,在/home/gzlihao/webservice目录下创建mysite目录
mkdir mysite
进入 mysite 目录,然后创建虚拟环境 .env,激活虚拟环境,然后安装flask和uwsgi。
cd mysite
virtualenv .env
source .env/bin/activate
pip install flask
pip install uwsgi
hello.py的内容如下:
2
3
4
5
6
7
8
9
需要注意的是,
增加配置文件uwsgi.ini,内容如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
uwsgi –ini uwsgi.ini
(注意参数是两个
:()
可以看到mysite目录下新增了以下文件
deactivate
sudo apt-get install nginx
在/etc/nginx/sites-availabel目录下创建mysite.conf文件,内容如下:
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 -t
然后对nginx进行平滑重启
kill -HUP 27198
其中27198 为nginx主进程号,可以使用
编辑
[布署mysite的ip地址] www.mysite.com
例如
192.168.229.166 www.mysite.com
打开浏览器,输入
转自:http://blog.csdn.net/lihao21
Running flask with virtualenv, uwsgi, and nginx
Serving Flask With Nginx
flask uWSGI
目录(?)[+]
本文讲述了如何使用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的内容如下:from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(host='0.0.0.0', port=8080)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,内容如下:[uwsgi] chdir=/home/gzlihao/webservice/mysite home=/home/gzlihao/webservice/mysite/.env module=hello callable=app master=true processes=2 socket=%(chdir)/mysite.sock chmod-socket=666 logfile-chmod=644 daemonize=%(chdir)/uwsgi.log uid=gzlihao gid=gzlihao procname-prefix-spaced=mysite1
2
3
4
5
6
7
8
9
10
11
12
13
14
启动uwsgi
uwsgi –ini uwsgi.ini(注意参数是两个
-然后加上
ini,该死的CSDN,我都打两个
-了,还是显示一个
:()
可以看到mysite目录下新增了以下文件
mysite.sock以及
uwsgi.log
安装nginx
deactivate sudo apt-get install nginx
配置nginx
在/etc/nginx/sites-availabel目录下创建mysite.conf文件,内容如下:server { listen 80; server_name www.mysite.com; charset utf-8; client_max_body_size 5M; location / { include uwsgi_params; uwsgi_pass unix:/home/gzlihao/webservice/mysite/mysite.sock; } location /static { alias /home/gzlihao/webservice/mysite/static; } }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.csdn.net/lihao21
参考资料
Running flask with virtualenv, uwsgi, and nginxServing Flask With Nginx
flask uWSGI
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories