栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021

采用 flask nginx gevent的方式在windows中部署内容

一、在本地开启一个flask web服务

python flaskapp.py

二、安装并配置nginx

2.1 下载nginx-windows包

http://nginx.org/download/nginx-1.11.8.zip

2.2 解压缩后修改conf/nginx.conf 文件 在http:{}里边填上添加如下内容

 server { 
 listen 5001;
 server_name 47.105.72.***; 
 location / {
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Host $http_host;
 proxy_pass http://127.0.0.1:5000;
2.3启动nginx

切换到nginx根目录 点击nginx.exe
或者去这个目录 输入nginx 命令就可以启动服务器
关闭CMD窗口不会关闭nginx
关闭可以如下方法
(1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)
(2)使用taskkill taskkill /f /t /im nginx.exe

三、开放windows防火墙端口

3.1 进入防火墙配置中心
控制面板-防火墙-高级设置
》设置入站规则
点击新建规则

tcp 特定本地端口 5001 并点击下一步

*选择允许链接并点击下一步

*设置名称并点击完成 即可生效

3.4 gevent
pip install gevent
然后 在flask主入口程序最顶侧引入并打上猴子补丁
from gevent import monkey
monkey.patch_all()

补丁打好后用manage的装饰器写一个能够在黑屏终端执行的方法

 manage.command
def runserver_gevent():
 from gevent import pywsgi
 sever pywsgi.WSGIServer(( 127.0.0.1 ,5000),app)
 sever.serve_forever()

由于有NGINX的代理那就127.0.0.1 5000 最基础的就行了
下面贴出本次测试的所有主程部分

from gevent import monkey
monkey.patch_all()
from flask import Flask,request,redirect,url_for,render_template
from apps import creat_app
from flask_migrate import Manager,Migrate,MigrateCommand
from exts import db
from apps.user.models import User,ok1
import setting, os
app Flask(__name__)
app creat_app(app)
manage Manager(app app)
migrate Migrate(app app,db db)
manage.add_command( db ,MigrateCommand)
 manage.command
def runserver_gevent():
 from gevent import pywsgi
 sever pywsgi.WSGIServer(( 127.0.0.1 ,5000),app)
 sever.serve_forever()
if __name__ __main__ :
 manage.run()

存好文件后运行命令为

python app.py runserver_gevent
3.5 访问地址

在浏览器输入 http://you_ip:5001即可。

最后 这么做一下是能够正常运行的 由于也是一个人测试也不知道有没有效果 以及实际价值 个人觉得比以前更容易卡死了~~ 但是WINDOWS2019数据中心版的阿里云服务器也就折腾到这样了 真正的WEB服务器还是要换成linux系统的。

3.6 这部分是写完了不甘心又补充的内容 这一次放弃了用gevent的启动方式而采用原版启动 考虑到一致困扰我的是服务器卡死的问题那我就多启动几个服务器 然后对NGINX配置了负载均衡的方案具体配置如下 还是改conf/nginx.conf 文件 在http:{}里边填上添加如下内容
 upstream testserver{
 server 127.0.0.1:5000;
 server 127.0.0.1:4999;
 server 127.0.0.1:4998;
 server {
 listen 5001;
 server_name 47.105.72.*;
 location / {
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header Host $http_host;
 proxy_pass http://testserver;
上面 显而易见 第一个配置的 testserver是名字 把额外启动的几个服务器都填在大括号里 在下一个配置里边除了填侦听端口5001 服务器名字 47.105.. 最重要的是下面的 http://testserver 部分是说明了均衡服务器的列表名。

然后启动三个不同端口的服务器进行测试

图片显示~确实是。。。来请求后由三个服务器共同承担响应 想来就是卡死也得三个全卡死才挂掉 反正也没啥人看我开10个服务器闲着挂机也没事。十个全卡死想来也不太容易 。。。好吧短期治标了 治本还是换操作系统正经配置吧。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号