如何在宝塔面板后的阿里云服务器运行Flask项目并公网可以访问?

2023-11-01

在你的服务器安装宝塔面板

宝塔面板是服务器运维管理系统
使用宝塔前: 手工输入命令安装各类软件,操作起来费时费力并且容易出错,而且需要记住很多Linux的命令,非常复杂。

使用宝塔后: 2分钟装好面板,一键管理服务器,鼠标点几下就能替代以前的复杂繁多命令,操作简单,看一眼就会使用。
https://www.bt.cn/new/download.html

用FTP工具FileZilla进行传输Flask项目

在这里插入图片描述

设置启动文件

在这里插入图片描述

公网ip访问会报错

* Serving Flask app 'run'
* Debug mode: on
Cannot assign requested address

Nginx 反向代理 Flask实现公网可访问

用宝塔面板安装Nginx

如果服务器的公网 IP 地址与你在 Flask 应用中设置的 IP 地址不一致,有可能是因为服务器处在一个局域网内,而公网 IP 地址是由路由器或防火墙分配的。在这种情况下,你需要设置端口转发或使用反向代理等方式来实现公网访问。

cd www/server/panel/vhost/nginx

一种常见的方式是使用 Nginx 反向代理 Flask 应用。反向代理可以将客户端的请求转发到 Flask 应用所在的服务器,然后将应用的响应返回给客户端,从而实现公网访问。

具体来说,你需要在服务器上安装并配置 Nginx,然后在 Nginx 的配置文件中添加反向代理规则,将客户端的请求转发到 Flask 应用所在的端口。

在这里插入图片描述

那么需要将 Flask 应用监听的地址改为公网 IP 地址,而不是使用 Nginx 反向代理到本地 IP 地址。

具体来说,你需要将 Flask 应用的监听地址修改为 0.0.0.0,这样 Flask 应用就会监听所有可用的网络接口,包括公网 IP 地址。例如,你可以在 Flask 应用中加入以下代码:

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

其中,host=‘0.0.0.0’ 表示 Flask 应用会监听所有可用的网络接口,包括公网 IP 地址。port=5000 表示 Flask 应用会监听 5000 端口。

然后,在 Nginx 配置文件中,你可以使用以下规则将公网流量反向代理到 Flask 应用:

location / {
    proxy_pass http://localhost:5000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

其中,proxy_pass http://localhost:5000 表示将所有请求转发到本地的 5000 端口,也就是 Flask 应用所在的端口。proxy_set_header Host $host 和 proxy_set_header X-Real-IP $remote_addr 则是设置请求头信息,保证 Flask 应用能够正确获取请求的主机名和 IP 地址。

需要注意的是,如果你想要将网站部署到公网上,需要确保服务器的网络环境和安全环境都得到了充分的保护,以避免出现安全问题。建议在部署前先进行充分的安全评估和测试。

例如,假设 Flask 应用监听在 127.0.0.1:5000,你可以在 Nginx 的配置文件中添加以下规则:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

以上配置将客户端的请求转发到 127.0.0.1:5000,并设置了 Host 和 X-Real-IP 头信息,以便 Flask 应用正确处理请求。

需要注意的是,Nginx 的配置文件可能因版本和系统的不同而有所差异,具体配置方式可以参考 Nginx 的官方文档或者其他相关资料。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在宝塔面板后的阿里云服务器运行Flask项目并公网可以访问? 的相关文章

随机推荐

  • MIPI简介(二)——物理层D-PHY

    一 物理层 物理层规范了传输介质 电气特性 IO电路 和同步机制 通俗地说 就是指定在MIPI协议的最底层物理层 发送端Tx如何拿到上层编码好的数据 转化成怎样的电信号 并通过多少根 组通道以何种形式发送给接收端Rx等等 CSI和DSI的物
  • C++ 函数参数何时用引用何时用指针

    什么时候使用引用 什么时候使用指针 什么时候按值传递呢 对于使用传递的值而不做修改的函数 如果数据量很小 如内置数据类型或小型结构 则按值传递 如果数据对象是数组 则使用指针 并将指针申明为指向const的指针 如void fun cons
  • nlohmann 最优秀的C++序列化工具库 详细入门教程(转)

    C 使用nlohmann json教程 使用指南 1 include include
  • 【react】createRef

    createRef 1 React createRef调用后可以返回一个容器 该容器可以存储被ref所标识的节点 2 该容器是 专人专用 的 因为后放进去的节点会把前面的节点覆盖掉 3 除非再调用一次createRef
  • k8s笔记8--快速部署k8s集群 v1.19.4--calico网络

    k8s笔记8 快速部署k8s集群 v1 19 4 calico网络 1 介绍 2 搭建集群 4 注意事项 3 说明 1 介绍 k8s 部署的时候可以选择多种cni插件 每种插件都有其对应的特殊 最经典的的莫过于 Flannel 和 Cali
  • signature=571b6507b6fff101f4546f0b0a3f3860,Contribution of fishery discards to the diet of the Black...

    Abraham ER Pierre JP Middleton DAJ Cleal J Walker NA Waugh SM 2009 Effectiveness of fish waste management strategies in
  • 真诚不等于坦诚

    有趣的问题及答案 https www zhihu com question 343898658 这个问题背后可以影射很多社会现象 人家没问的 我自认为可能是减分项的 暂时就先不说 人家问了的 我可以不完全说清楚 说一半留一半 不对 这件事情
  • url重定向

    不安全的url跳转 不安全的url跳转问题可能发生在一切执行了url地址跳转的地方 如果后端采用了前端传进来的 可能是用户传参 或者之前预埋在前端页面的url地址 参数作为了跳转的目的地 而又没有做判断的话 就可能发生 跳错对象 的问题 u
  • 大数据基础之Hbase——Hbase的shell基本操作

    目录 一 简介 二 Hbase重要概念 Hbase的表结构 表Table 命名空间namespace 行键Row Key 区域region 列簇column family 修饰符 列限定符 三 Hbase shell基本操作 1 创建简单表
  • linux的apache安装在哪个目录,在linux系统下apache的默认安装路径怎么看

    在linux系统下apache的默认安装路径怎么看 发布时间 2020 11 06 10 38 18 来源 亿速云 阅读 127 作者 小新 这篇文章将为大家详细讲解有关在linux系统下apache的默认安装路径怎么看 小编觉得挺实用的
  • Docker教程(三) - Docker 网络(上)- 桥接 Bridge

    本文章翻译自Docker的官方教程 有兴趣的同学可以上Docker官网进行play with docker学习 Docker的安装教程请参考这里 未定义 本文翻译自Docker官方教程Doing More With Docker Image
  • 【Unity项目实战】手把手教学:飞翔的小鸟(5)背景滚动

    承接上一篇 Unity项目实战 手把手教学 飞翔的小鸟 4 文本添加 我们已经使得主角小鸟接触到地面后跳转到Game Over状态 接下来我们将继续往下 讲解得分机制 一 重新进入游戏 根据上篇最后的描述 我们小鸟掉到草地就会立马被判断为游
  • 项目中Swagger2、lombok(小辣椒)、以及短信API的调用 简单介绍

    一 使用Swagger2实时生成接口文档 分布式系统使用 Swagger 是一个规范和完整的框架 用于生成 描述 调用和可视化 RESTful 风格的 Web 服务 总体目标是使客户端和文件系统作为服务器以同样的速度来更新 文件的方法 参数
  • 2021-05-27

    k8s 根据CPU利用率实现pod的弹性伸缩 一 概念 1 弹性伸缩的作用 让集群的配置可以根据计算需求 自动增加或者自动减少 在服务器访问量突然增多 算力吃紧的情况下增加节点配置数量 直到访问量下降 计算后减少节点数 保证业务平稳健康运行
  • 使用BP神经网络预测锂电池健康状态(附Matlab源码)

    使用BP神经网络预测锂电池健康状态 附Matlab源码 随着电动汽车的普及 电池技术得到了广泛的关注 其中 锂电池因其能量密度高 环保等优点被广泛应用于电动汽车和储能系统中 然而 锂电池的寿命问题一直是制约其应用和发展的重要因素之一 针对这
  • jQuery+Ajax+js请求json格式数据并渲染到html页面

    1 先给json格式的数据 id 1 name stan id 2 name jack id 3 name lucy id 4 name mary id 5 name jerry id 6 name tom 2 通过访问html页面 获取并
  • 虚幻4学习笔记(3)地形工具和植被

    地形工具和植被 地貌编辑器 生成斜坡 雕刻工具 编辑样条曲线 光照进行构建解决方法 导入灰度图 植被工具使用 植被碰撞 B站UP谌嘉诚课程 https www bilibili com video BV164411Y732 地貌编辑器 生成
  • 分布式一致性算法的重要原理:鸽巢原理

    在分布式BASE理论 数据一致性模型有哪些 中 我们谈到了BASE理论的最终一致性 以及简单介绍了数据一致性模型 但我们都是站在一个使用者的角度 在发出数据更新的请求给分布式系统之后 观察返回的数据是否更新 为了更好使用 理解分布式系统 不
  • C#入门学习-----制作AVI播放器

    本实例主要用到了Microsoft Animation Control Version 6 0 组件 该组件可以一帧一帧地播放AVI文件 用到该组件 必须将Microsoft Animation Control Version 6 0组件添
  • 如何在宝塔面板后的阿里云服务器运行Flask项目并公网可以访问?

    在你的服务器安装宝塔面板 宝塔面板是服务器运维管理系统 使用宝塔前 手工输入命令安装各类软件 操作起来费时费力并且容易出错 而且需要记住很多Linux的命令 非常复杂 使用宝塔后 2分钟装好面板 一键管理服务器 鼠标点几下就能替代以前的复杂