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

这篇具有很好参考价值的文章主要介绍了【Python Flask+Nginx】实现HTTP、WS (两步实现,简单易懂)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、创建Flask应用 

二、部署Nginx

2.1 下载Nginx 

2.2 修改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返回一个时间:

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

 Flask应用Demo源码:

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)

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

 下载后目录如下:

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

2.2 修改Nginx配置文件

打开配置文件:

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

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

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

        listen:代理后的端口

        servername:填写ip或域名都可以

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

复制粘贴: 

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 Flask+Nginx】实现HTTP、WS (两步实现,简单易懂),python 后端,python,flask,nginx

启动命令: 

start nginx

 关闭命令:

nginx -s quit

三、测试

1. 首先运行Flask应用:

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

2. 启动Nginx:

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

 3. 测试http接口:

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

4. 测试websocket接口:(测试地址:websocket在线测试)

【Python Flask+Nginx】实现HTTP、WS (两步实现,简单易懂),python 后端,python,flask,nginx OK,一切正常~,收工

 文章来源地址https://www.toymoban.com/news/detail-672629.html

到了这里,关于【Python Flask+Nginx】实现HTTP、WS (两步实现,简单易懂)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP 代理原理及 Python 简单实现

    HTTP 代理是一种网络代理服务器(Proxy Server),它能够作为客户端与 HTTP 服务器之间的中介,它的工作原理是: 当客户端向 HTTP 代理发送 HTTP 请求时,HTTP 代理会收到请求。 HTTP 代理会将请求转发给目标 HTTP 服务器。 目标 HTTP 服务器处理请求并生成响应。 HTTP 代理将响应转发

    2024年02月10日
    浏览(41)
  • Nginx共同配置WS(WebSocket)和Http

    首先 WebSocket协议不是超文本传输协议。 尽管WebSocket协议确实使用HTTP请求启动了一个新连接,但它会迅速将连接升级为完整的WebSocket (这需要在初始请求中包含Connection: upgrade头,而不是Connection: keep-alive)。 所以,在nginx配置的时候,先对请求进行升级 配置项: 然后再对nginx代

    2024年02月16日
    浏览(38)
  • nginx部署时http接口正常,ws接口404

    可以这么配置 首先: 表示的是: 如果 $http_upgrade 不为 ‘’ (空),则 $connection_upgrade 为 upgrade 。 如果 $http_upgrade 为 ‘’ (空),则 $connection_upgrade 为 close。 其次: 表示的是 nginx负载均衡: 两台服务器 (ip1:port1)和(ip2:port2) 。 keepalive 1000 表示的是每个nginx进程中上游服务器保持

    2024年02月12日
    浏览(40)
  • 华为云云耀云服务器L实例评测|用Python的Flask框架加Nginx实现一个通用的爬虫项目

    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验, AWS/阿里云资深使用用户 ,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏 随着云计算时代

    2024年02月08日
    浏览(53)
  • 基于 Python 实现一个简单的 HTTP 服务器

    文章这个题目,让我想起了大学时上《Unix 网络编程》这门专业课的家庭作业,题目几乎一模一样。 HTTP 服务器工作在服务端,主要功能包括处理来自客户端的请求,管理网络资源,以及生成和发送响应给客户端。在实际应用中,HTTP 服务器不仅限于传输 HTML 文档;它还可以传

    2024年03月22日
    浏览(58)
  • Python中的抽象类(简单易懂版)

    如果大家学过java语言的话,那么一定对抽象类不陌生。同样作为面向对象的语言,Python也有抽象类。 1.1什么是抽象类? 如果说,类是对一堆对象共同内容的抽取,那么抽象类就是对一堆类共同内容的抽取,包括:属性和方法。 1.2抽象类的特点 (1)抽象类必须包含一个或多

    2024年02月09日
    浏览(30)
  • python简单易懂的小程序,python有趣小程序代码

    大家好,小编来为大家解答以下问题,python简单易懂的小程序,python有趣小程序代码,今天让我们一起来看看吧! Source code download: 本文相关源码 本篇文章给大家谈谈python200行有趣小程序,以及python简单小游戏代码,希望对各位有所帮助,不要忘了收藏本站喔。 经常听到有朋

    2024年03月20日
    浏览(48)
  • python简单易懂的小程序,python小程序开发教程

    本篇文章给大家谈谈python简单易懂的小程序,以及python小程序开发教程,希望对各位有所帮助,不要忘了收藏本站喔。 有不少同学学完 Python 后仍然很难将其灵活运用。我整理 37 个 Python 入门的小程序70个python练手项目。在实践中应用 Python 会有事半功倍的效果。 例子1:华氏

    2024年01月22日
    浏览(46)
  • 【python】使用pip安装python第三方库(简单易懂)

    作者:二月知野 专栏: 《人生苦短 我学python》 Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域。例如:网络爬虫、自动化、数据分析与可视化、WEB开发、机器学习和其他常用的一些第三方库 什么是pip? pip是python的第三方库管理器,可以根据所开发项目的需要,使用

    2024年02月10日
    浏览(48)
  • chatgpt赋能python:Python本地安装库:一个简单易懂的指南

    Python是一种高级的编程语言,它拥有庞大的社区支持和无数的第三方库。如果你在使用Python时需要一些额外的功能,那么你可能需要安装一些库。本文将介绍如何在本地安装库,以及一些需要注意的事项。 Python库是一组已经编写好的Python代码,用于完成一些特定的任务。这些

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包