【Python Flask+Nginx】实现HTTP、WS (两步实现,简单易懂)

目录

一、创建Flask应用

二、部署Nginx

[2.1 下载Nginx](#2.1 下载Nginx)

[2.2 修改Nginx配置文件](#2.2 修改Nginx配置文件)

[2.3 启动Nginx](#2.3 启动Nginx)

三、测试


一、创建Flask应用

首先我写了如下一个基于Flask的Demo,该Demo包含两个接口一个是HTTP 接口(http://127.0.0.1:5000),一个是Websocket接口(ws://127.0.0.1:5000/test)

如果调用HTTP接口,会返回一个json数据:

复制代码
{"msg":"ok"}

如果调用Websocket,会每隔1s返回一个时间:

Flask应用Demo源码:

python 复制代码
import time
from flask_sockets import Sockets
from gevent import monkey
from flask import Flask, jsonify
from gevent import pywsgi
from geventwebsocket.handler import WebSocketHandler

monkey.patch_all()

app = Flask(__name__)
sockets = Sockets(app)

#  ws接口
@sockets.route('/test')  # 指定路由
def echo_socket(ws):
    while not ws.closed:
        ws.send(str(time.asctime()))  # 给clicent传时间

# http接口
@app.route('/')
def hello():
    return jsonify(msg="ok")


if __name__ == "__main__":
    server = pywsgi.WSGIServer(('0.0.0.0', 5000), app, handler_class=WebSocketHandler)
    print('server start')
    server.serve_forever()

二、部署Nginx

2.1 下载Nginx

先去官网下载Nginx(官网下载地址:nginx: download)

下载后目录如下:

2.2 修改Nginx配置文件

打开配置文件:

主要修改如下标注区域内容:

listen:代理后的端口

servername:填写ip或域名都可以

proxy_pass:对应的是flask程序启动后的web地址。

复制粘贴:

python 复制代码
listen       9900;
server_name  localhost;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

2.3 启动Nginx

首先以管理员身份启动cmd,然后cd到含有nginx.exe的目录

启动命令:

python 复制代码
start nginx

关闭命令:

python 复制代码
nginx -s quit

三、测试

  1. 首先运行Flask应用:
  1. 启动Nginx:
  1. 测试http接口:
  1. 测试websocket接口:(测试地址:websocket在线测试)

OK,一切正常~,收工

相关推荐
郝学胜-神的一滴35 分钟前
AI 编程智能体 27:吃透MCP通信机制
人工智能·python·langchain·wpf·numpy·scikit-learn
天天被压力43 分钟前
【A股分钟级高频数据完全手册 #09】A股历史分时交易数据接口:普通分时怎么批量下
java·人工智能·python
天天被压力1 小时前
【A股分钟级高频数据完全手册 #10】股票实时行情数据接口Python:公开源实时交易取数
java·人工智能·python
Csvn10 小时前
认识 Nginx
后端·nginx
特立独行的猫A10 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持11 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang11 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰12 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc13 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
羲云网络16 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud