华为云上部署Flask无法连通的问题解决

问题

今天在华为云上部署了一个项目,直接 flask run --post=0.0.0.0后发现还是无法从外网访问。

解决办法

原因是华为云本身默认的网络安全组策略没有放通5000端口,把端口放通了就行。
路径:华为云服务器控制台首页——找到服务器右边的操作——更多——网络设置——安全组策略配置——配置规则——入方向配置——添加规则——把5000填进去就行,选TCP规则。

### 华为云部署 Flask 应用的完整流程 #### 1. 租用华为云弹性云服务器并初始化 为了在华为云上运行 Flask 应用程序,首先需要租用一台弹性云服务器。可以选择 Ubuntu 系统作为操作环境[^1]。完成服务器租赁后,通过工具如 Xshell 登录到服务器。 #### 2. 安装必要的依赖项 在登录后的服务器环境中,安装 Python 和其他必要组件来支持 Flask 的运行。以下是具体的命令: ```bash sudo apt update && sudo apt upgrade -y sudo apt install python3-pip python3-venv nginx -y ``` 这些命令会更新系统的包列表,并安装 Python 的 pip 工具以及虚拟环境创建工具 `python3-venv` 和 Nginx Web 服务器[^3]。 #### 3. 创建 Flask 应用 在一个指定目录下创建一个基本的 Flask 应用实例。例如,在 `/var/www/test1/` 路径下放置以下代码文件 `app.py`: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello_flask(): return 'Hello Flask!' if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) ``` 此脚本定义了一个简单的路由,当访问根路径时返回字符串 "Hello Flask!"。 #### 4. 使用 Gunicorn 启动应用服务 虽然可以直接使用 Flask 自带的开发服务器启动应用 (`flask run`),但在生产环境下推荐使用更稳定的 WSGI 服务器,比如 Gunicorn 来托管应用程序。执行以下步骤设置 Gunicorn: ```bash cd /var/www/test1/ pip install gunicorn gunicorn --workers 3 --bind unix:test1.sock -m 007 wsgi:app ``` 这里假设已经有一个名为 `wsgi.py` 的入口文件用于加载应用对象 `app`。 #### 5. 配置 Nginx 反向代理 为了让外部能够通过 HTTP 访问Flask 应用,需配置 Nginx 将请求转发给本地监听的应用进程。编辑站点可用配置文件 `/etc/nginx/sites-available/test1` 并添加如下内容: ```nginx server { listen 80; server_name your_domain_or_ip; location / { include proxy_params; proxy_pass http://unix:/var/www/test1/test1.sock; } } ``` 确保替换其中的占位符为你实际使用的域名或者 IP 地址[^4]。 最后测试 Nginx 配置语法无误后重新载入其服务即可生效: ```bash sudo nginx -t sudo systemctl reload nginx ``` 如果遇到无法从公网访问的情况,则可能涉及防火墙规则未开放相应端口等问题[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值