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

来源:互联网 发布:软件服务收费模式 编辑:程序博客网 时间:2024/06/05 04:35

  • 用的是树莓派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 nginxSudo /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 FlaskApp=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.confNano 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.iniNano Web_uwsgi.ini

写入如下内容

/*[uwsgi]socket = 127.0.0.1:5000 #注: 指定某个固定端口 表示和Nginx通信的地址和端口,和 Nginx配置里的uwsgi_pass一致。processes = 4 #注:跑几个进程,这里用4个进程threads = 2 #注:每个进程的线程数master = truepythonpath = /var/www/Webmodule = raspberry#注:表示项目启动模块,如上例为raspberry.py,这里就为raspberrycallable = app#注:表示Flask项目的实例名称,上例代码中app = Flask(__name__),所 以这里为appmemory-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 Flaskfrom 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
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红米手机1s黑屏怎么办 红米2完全黑屏怎么办 红米note3接电话黑屏怎么办 红米note3死机黑屏怎么办 红米note2开机之后黑屏怎么办 红米手机白屏怎么办 红米4黑屏打不开怎么办 oppo手机拨打电话时黑屏怎么办 华为手机拨打电话时黑屏怎么办 小米6x拨电话黑屏怎么办 魅族手机打电话黑屏怎么办 三星手机拨打电话时黑屏怎么办 华为畅享5打电话黑屏怎么办 小米note通话声音小怎么办 金立m5黑屏开不了机怎么办 金立手机光感器坏了怎么办 红掌根部烂了怎么办 魅族相册闪退怎么办 魅族手机闪退怎么办 苹果6手机主页面打不开怎么办 手机中病毒闪退怎么办 酷派手机开机黑屏怎么办啊 酷派手机黑屏打不开怎么办 酷派手机不开机怎么办 乐视手机开不了机怎么办 vivo手机拨号键盘不见了怎么办 华为手机拨号键盘不见了怎么办 金立手机拨号键盘不见了怎么办 酷派手机home键失灵怎么办 r11屏碎一半黑屏怎么办 金立手机黑屏打不开怎么办 小米8se自动跳出广告怎么办 小米手机总跳出广告怎么办 小米手机总是出现广告怎么办 红米1s开机黑屏怎么办 红米手机打电话黑屏怎么办 小米4c打游戏卡怎么办 电脑总出现拨号连接怎么办 win10电脑没有拨号连接怎么办 红米手机黑屏了怎么办 小米4s黑屏了怎么办