nginx+uwsgi+flask在linux下部署服务器

4 篇文章 0 订阅
2 篇文章 0 订阅

  • 用的是树莓派3B型

  • 系统用的是raspbian

  • 系统自带nginx,我就没有下载。


开始

1-> 在linux下部署flask集成框架,这是一个小型框架适合初学者学习。

以下命令要在root权限下进行

Sudo apt-get install virtualenv     ———>virtualenv这个模块提供个个项目的独立化,单一项目非必需。

Sudo apt-get install flask     ———->flask 这个就不废话了。

2-> 在linux下部署nginx服务器,具有反向代理的能力,作为负载均衡服务器。

以下命令要在root权限下进行

Sudo apt-get install nginx

Sudo /etc/init.d/nginx start    ———->开启nginx服务器

Nginx只是一个提供静态文件访问的服务器,不能直接执行托管python应用,uWSGI作为Web服务器接口,为nginx和python应用提供交互服务。

3->在linux下部署uWSGI服务器,提供交互服务

已下命令要在root 权限下进行

Sudo apt-get install uwsgi

安装过程到此结束。

执行

1-> 创建一个Web.py的应用。

Import flask from Flask

App=Flask(__name__)

@app.route(‘/’)
Def hello():
Return (“hello,world”)

App.run(host=’127.0.0.1’,port=5000)

以下命令要在root权限下进行

#python Web.py

我们在地址栏里边输入127.0.0.1:5000
可以看到hello,world。

2->配置Nginx

以下命令要在root权限下进行

Sudo rm /etc/nginx/sites-enabled/default
———–>删除nginx默认的配置文件
———–>注意:如果你安装了其他版本的Nginx,默认配置文件可能在/etc/nginx/conf.d 文件夹下。

创建一个nginx配置文件

Mkdir -p /var/www/Web/
Cd /var/www/Web/
Touch Web_nginx.conf
Nano Web_nginx.conf

写入如下内容

/*
server {
listen      80;
server_name localhost;
charset     utf-8;
client_max_body_size 75M;
location /static {
alias /var/www/Web/static;
}
location /{
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000 ;
}
}
*/

将刚建立的配置文件使用符号链接到Nginx配置文件文件夹中,重启Nginx:

Sudo ln -s /var/www/Web/Web_nginx.conf /etc/nginx/conf.d/
Sudo /etc/init.d/nginx restart

3->配置uwgsi

由于在Web_nginx.conf中有一句uwsgi_pass unix:/var/www/Web/Web_uwsgi.sock;
Nginx和python是通过Web_uwsgi.sock来交互的。

以下命令要在root权限下进行
创建Web_uwsgi.ini配置文件

Touch Web_uwsgi.ini
Nano Web_uwsgi.ini

写入如下内容

/*
[uwsgi]
socket = 127.0.0.1:5000 #注: 指定某个固定端口 表示和Nginx通信的地址和端口,和 Nginx配置里的uwsgi_pass一致。
processes = 4 #注:跑几个进程,这里用4个进程
threads = 2 #注:每个进程的线程数
master = true
pythonpath = /var/www/Web
module = raspberry#注:表示项目启动模块,如上例为raspberry.py,这里就为raspberry
callable = app#注:表示Flask项目的实例名称,上例代码中app = Flask(__name__),所 以这里为app
memory-report = true
*/

创建一个日志文件目录

Mkdir -p /var/log/uwsgi

执行uWSGI,用新创建的配置文件作为参数

uwsgi --ini /var/www/Web/Web_uwsgi.ini      ————>运行之后会在Web目录下生成Web_uwsgi.sock

到此在linux下配置集成开发环境结束了。谢谢。

部署文件

1->目标在集成环境下部署静态文件

Raspberry.py

from flask import Flask
from flask import render_template #这是一个模板渲染的方法。

App=Flask(__name__,static_url_for=”/var/www/Web”)

@app.route(‘/’)
Def hello():
Return render_template(“index.html”)
If __name__=’__main__’:
App.run(host=’127.0.0.1’,port=5000)

此时是需要在当前文件夹下新建一个 template 和 static

Template文件夹放置需要渲染的模块。

Static 文件夹放置静态文件 例如css,js,jpg……..

Web文件夹的结构图

Web
|
—-static
| |
| —-css
| —-js
| —-layer
| —-dome.html
—-template
| |
| —-index.html
—-raspberry.py
—-Web_nginx.conf
—-Web_uwsgi.ini

每次修改raspberry.py后 你都要重新运行一次Web_uwsgi.ini文件。
每次修改静态文件时不需要重新运行。

命令如下:

Sudo uwsgi --ini /var/www/Web/Web_uwsgi.ini
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值