【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,一切正常~,收工

相关推荐
2601_9622982716 小时前
Python自动化脚本的编写01
python·appium·自动化脚本·web自动化·应收账款管理
AIFQuant16 小时前
Python实时外汇行情接入实战:WebSocket与REST K线查询
开发语言·python·websocket
babe小鑫17 小时前
生物统计学专业校招:SAS、R、Python学习顺序实用指南
python·学习·r语言
vx_Biye_Design17 小时前
springboot游泳馆系统93765-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·spring·课程设计
固定资产管理系统软件17 小时前
该去哪里找专业靠谱的智慧智能设备固定资产管理系统?
人工智能·python
ctlover17 小时前
LangChain 概述
python·langchain
专业程序开发源17 小时前
springbootLivehouse票务系统-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·pygame
李高钢17 小时前
Python Django 框架入门:从零搭建你的第一个 Web 应用
前端·python·django
2601_9669496518 小时前
从轮询到策略消费:量化系统如何高效处理五档盘口数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
萧鼎18 小时前
2026实战:用 accelerate 库加速 PyTorch 训练,核心语法与避坑指南
python·开源·教程·python库·accelerate