首先,得有一个Ubuntu服务器(当然或者其他)
- 开发环境搭建
(以下安装都是在root超级用户,使用apt-get简易安装)
1、nginx 安装
apt-get install nginx
完成安装后测试
启动nginx
/etc/init.d/nginx start
# 或者
service nginx start
在终端输入curl 127.0.0.1:5000
测试是否显示nginx欢迎信息
2、uwsgi安装
wget http://projects.unbit.it/downloads/uwsgi-2.0.5.1.tar.gz python setup.py install
验证成功
/usr/bin/uwsgi -h
出现帮助提示就行了
3、uwsgi-plugin-python安装
如果缺少它将出现502 bad gateway的网页,uwsgi的log日志会提示 – unavailable modifier requested: 0
apt-get install uwsgi uwsgi-plugin-python
4、python安装
Ubuntu提供了一个良好的python开发环境,Ubuntu12.04自带了python2.7和python3,可以自己选用
5、python-pip安装
apt-get install python-pip
如果失败需要先安装python-dev
6、flask安装
pip install flask
7、其他python模快都可以使用pip安装了,是否需要使用虚拟机,看自己喜好
- nginx和uwsgi配置
1、先添加一个项目目录Test在/usr/local/src下,新建测试程序test.py
# /usr/local/src/Test/test.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
给项目目录配置权限,nginx和uwsgi默认是以www-data用户和组来运行:
chown -R www-data:www-data /usr/local/src/Test
chmod -R 775 /usr/local/src/Test
2、修改nginx配置文件 /etc/nginx/sites-available/default
...
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
root html;
index index.html index.htm;
}
...
3、修改uwsgi文件,在/etc/uwsgi/apps-available目录下添加一个配置文件app_config.xml
<uwsgi>
<pythonpath>/usr/local/src/Test</pythonpath>
<plugins>python</plugins>
<module>test</module>
<callable>app</callable>
<socket>127.0.0.1:5000</socket>
<master/>
<processes>4</processes>
<memory-report/>
</uwsgi>
pythonpath表示项目目录
module表示项目启动模块,如上例为test.py,这里就为test
callable表示Test项目的实例名称,上例代码中app = Flask( name ),所以这里为app
socket表示和nginx通信的地址和端口,和nginx配置里的uwsgi_pass一致。
processes表示开启多少个子进程处理请求。
- 部署,启动测试
启动uwsgi
uwsgi -x app_config.xml
不要关闭此Terminal
新打开一个Terminal(Alt + Fx),登录进去
启动nginx
service nginx start
测试
在浏览器中输入ip就能看到“Hello World!”
Ubuntu apt-get 安装nginx和uwsgi 目录结构
- nginx的目录存放位置
配置文件目录 /etc/nginx
网站资源文件存放位置 /usr/share/nginx
ubuntu的配置文件分成三部分:
/etc/nginx根目录存放公共的配置
在sites_available和sites_enabled配置站点相关的信息例如域名端口等等。
/etc/nginx# tree
├── conf.d
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│ └── default
├── sites-enabled
│ └── default -> /etc/nginx/sites-available/default
├── uwsgi_params
└── win-utf
/usr/share/nginx# tree
.
└── html
└── index.html
2 . uwsgi的目录存放位置
配置文件目录 /etc/uwsgi
资源文件 /usr/share/uwsgi
………..
不想写了…….