采用 flask nginx gevent的方式在windows中部署内容
一、在本地开启一个flask web服务python flaskapp.py
二、安装并配置nginx2.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
3.1 进入防火墙配置中心
控制面板-防火墙-高级设置
》设置入站规则
点击新建规则
*选择允许链接并点击下一步
*设置名称并点击完成 即可生效
3.4 geventpip 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_gevent3.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个服务器闲着挂机也没事。十个全卡死想来也不太容易 。。。好吧短期治标了 治本还是换操作系统正经配置吧。


