Linux|树莓派部署Web服务器(Pi+flask+uWSGI+Nginx)

本文讲述了将Web项目部署在树莓派上的步骤和一些坑

文章目录
      • 1. 树莓派系统安装
        • 1.1 下载树莓派系统
        • 1.2 SSH 连接树莓派
      • 2. 搭建项目环境
        • 2.1 安装 Python 虚拟环境
        • 2.2 安装 Nginx+uWSGI
        • 2.3 安装配置 vim 编辑器
      • 3. 环境配置
        • 3.1 导入项目代码
        • 3.2 配置 Nginx
        • 3.3 配置 uWSGI
      • 4. 启动 Web 服务
      • 5. 参考链接

1. 树莓派系统安装
  • 本文是在mac系统下操作完成
1.1 下载树莓派系统
  1. 下载 Raspberry Pi OS 官方系统,推荐下载 desktop 版本的
  2. 将下载的压缩文件解压得到一个系统镜像软件,再准备一个已格式化的 TF 卡,通过烧录软件 Etcher 选择镜像文件和 TF 卡进行烧录
  3. 等待软件烧录完毕
1.2 SSH 连接树莓派
  1. 将制作好的 TF 卡重新插拔一次,电脑上会出现一个 boot
  2. 因为树莓派的 SSH 默认是关闭的,需要在 boot 的根目录下放一个名为 ssh 的无后缀空文件
  3. 把 TF 卡插进树莓派,然后连电,路由器的LAN口插上一个网线,另外一头插到树莓派上(mac系统需要在系统偏好设置中打开互联网共享)
  4. 打开 mac 的终端,输入 ssh pi@raspberrypi.local,初始账号是 pi,密码是 raspberry
2. 搭建项目环境
  • 安装必要的软件
2.1 安装 Python 虚拟环境
  1. 安装虚拟环境命令 $ sudo pip install virtualenv
  2. 创建项目文件夹 $ sudo mkdir myproject
  3. 对 myproject 文件夹进行提权 $ sudo chmod 777 myproject,赋予可读可写可执行的权限
  4. cd 进入,创建虚拟环境 $ virtualenv venv(虚拟环境名称)
  5. 进入/退出虚拟环境 $ source venv/bin/activate$ deactivate
2.2 安装 Nginx+uWSGI
  1. 进入虚拟环境,安装 Flask pip3 install flask
  2. 安装 nginx 和 uWSGI sudo apt-get install nginx uwsgi
2.3 安装配置 vim 编辑器
  1. 下载 vim sudo apt-get install vim
  2. 进入vim的配置文件 # sudo vim /etc/vimrc,并按个人习惯添加或修改
set nu # 显示行号 syntax on # 语法高亮 set tabstop=4 # tab退4格

3. 环境配置
3.1 导入项目代码
  1. VNC Viewer 软件有一个 File Transfer 功能,可以将项目代码拷贝进树莓里的 myproject 文件夹
3.2 配置 Nginx
  1. Nginx 安装完成后,还需要配置才能访问 sudo vim /etc/nginx/sites-available/default
server { listen 80; # 要填写最大传输大小,不然默认是1兆 client_max_body_size 1024m; server_name raspberry; location / { include uwsgi_params; uwsgi_pass127.0.0.1:5000; } }

  1. 保存退出后,启动 Nginx 服务 sudo /etc/init.d/nginx start
3.3 配置 uWSGI
  1. 在项目文件夹下,创建并编辑 uWSGI 的配置文件 sudo vim myproject/uwsgi.ini
[uwsgi] #uwsgi启动时所使用的地址与端口 socket = 127.0.0.1:5000 #虚拟环境目录 home = /home/myproject/venv #项目目录 pythonpath = /home/myproject #指向网站根目录 chdir = /home/myproject #python启动程序文件 wsgi-file = main.py #python程序内用于启动的application变量名 callable = app #处理器数 processes = 4 #线程数 threads = 2 #状态监测地址 stats = 127.0.0.1:9191

4. 启动 Web 服务
  1. 守护运行(后台)模式启动 uwsgi 服务器 uwsgi -d --ini uwsgi.ini
  2. 访问服务,局域网内的其他设备在浏览器中输入树莓派的 IP 地址即可
5. 参考链接
【Linux|树莓派部署Web服务器(Pi+flask+uWSGI+Nginx)】树莓派新手指南Mac版
树莓派4b安装python虚拟环境
虚拟环境创建失败解决方法
安装vim编辑器
三步在树莓派上部署nginx+uWSGI+flask

    推荐阅读