学习踩坑:Flask应用部署和网络配置

学习踩坑:Flask应用部署和网络配置

看前须知
这是一晚上和gpt4互相帮助,整好了anaconda在远程云服务器上部署得来的经验,吃了很多亏猜了很多坑。凌晨一点才部署好。并且最后用gpt4总结了经验发出来,如果能帮到人就最好了。

1. Python虚拟环境的创建和激活

目标

  • 理解虚拟环境的重要性。
  • 学习如何创建和激活虚拟环境。

关键点

  • 创建虚拟环境
    • 使用Conda:
      conda create -n myenv python=3.8
      
    • 使用Python的venv:
      python -m venv myenv
      
  • 激活虚拟环境
    • Conda环境:
      conda activate myenv
      
    • Python venv:
      source myenv/bin/activate  # Unix-like systems
      myenv\Scripts\activate  # Windows
      
  • 环境隔离:避免不同项目间的依赖冲突,确保开发环境的一致性。

2. Flask应用的配置和部署

目标

  • 配置Flask应用以允许外部访问。
  • 理解Flask开发服务器与生产服务器的差异。

关键点

  • 监听配置
    app.run(host='0.0.0.0', port=5000)  # Flask应用将能被外网访问
    
  • 开发与生产
    • 开发环境通常使用Flask内置的服务器,但不适用于生产。
    • 生产环境应使用WSGI服务器如Gunicorn:
      gunicorn -w 4 -b 0.0.0.0:5000 myapp:app
      

3. 防火墙和网络安全

目标

  • 理解和配置Linux防火墙(如UFW)来允许特定的网络流量。
  • 了解云平台(如阿里云)的安全组设置。

关键点

  • UFW配置
    sudo ufw allow 5000  # 允许外部访问5000端口
    sudo ufw enable  # 启动UFW防火墙
    sudo ufw status  # 查看防火墙状态
    
  • 安全组
    • 在云服务平台上配置安全组规则,确保开放必要的端口。

4. 跨域资源共享(CORS)

目标

  • 理解CORS的原理和必要性。
  • 学习如何在Flask中配置CORS以允许跨域请求。

关键点

  • CORS库
    from flask_cors import CORS
    
    app = Flask(__name__)
    CORS(app, resources={r"/api/*": {"origins": "*"}})  # 允许所有域访问/api/下的路由
    
  • 细粒度控制
    @app.route('/api/data')
    @cross_origin(origins="http://example.com")  # 仅允许来自example.com的跨域请求
    def data():
        return jsonify({"data": "Hello World"})
    

5. WebSocket的使用

目标

  • 了解WebSocket协议的基本概念和用途。
  • 学习如何在Python中使用websocket-client库。

关键点

  • 库选择与安装
    pip install websocket-client
    
  • 基本使用
 import websocket
 try:
     ws = websocket.create_connection("ws://example.com/websocket")
     ws.send("Hello, World")
     result = ws.recv()
     ws.close()
 except

Exception as e:
     print(e)

6. 问题诊断和解决

目标

  • 增强问题解决能力,特别是在网络和应用部署方面。
  • 学习使用命令行工具和日志进行故障排除。

关键点

  • 命令行工具
    • 使用netstat查看端口使用情况。
    • 使用curl测试HTTP请求。
  • 日志分析
    • Flask日志:设置日志记录级别,监控应用行为。
    • 系统日志:检查/var/log/syslog或使用journalctl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值