当前位置: 代码迷 >> 综合 >> Flask+gunicorn+Nginx+云服务器
  详细解决方案

Flask+gunicorn+Nginx+云服务器

热度:46   发布时间:2023-12-13 02:04:31.0

Flask+gunicorn+Nginx+云服务器

访问服务器也有子流程

  1. url先会访问 Nginx 服务器(作用: 负载均衡; 解释: url访问的时候,减轻服务器压力,可以分流给其他多个服务器, 使得多个服务器可以分摊的接收url )
  2. Nginx 会决定这个url分配给接下来的哪一个服务器
  3. 接下来的服务器是真正代码运行的载体服务器

2.部署环境

  • 部署环境的前提就是-得有地方部署,所以需要一个大的容器;
  1. 申请购买或者免费试用云服务器;
    • 部署环境的话其实就是需要什么就去安装什么
  2. 数据库是不可避免的,此处以安装MYSQL, redis为例
  3. 安装 flask 项目需要的运行虚拟环境(一般目前Linux都自带python3, 不需安装)
  4. 安装Nginx服务器
  5. 将代码和数据库表都导入服务器中
  6. 在虚拟环境中安装 gunicorn

安装-配置Nginx
sudo apt-get install nginx

server {
    # 监听80端口listen 80 default_server;listen [::]:80 default_server;root /var/www/html;index index.html index.htm index.nginx-debian.html;server_name _;location / {
    # 请求转发到gunicorn服务器proxy_pass http://127.0.0.1:5000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}

提示: 数据库可以备份导入,代码scp上传或者git下来; 具体资源导入不举例
pip install gunicorn
gunicorn -w 2 -b 127.0.0.1:5000 启动文件名(无后缀):对象
启动程序,必须在包含启动文件的当前目录(文件/对象名字不能错)


启动后可能外网不一定能够访问
可能遇到的问题或者需要注意的问题:
1.虚拟环境的创建; 如果是Mac – 需要添加一行信息;但一般服务器是linux
2.curl ip地址:5000 --查看回复的内容 ; (记得重启Nginx)
– 如果是403;需要在nginx.conf文件中查找到user然后的 user root www-data;
– 如果是500;gunicorn启动时 对象或者文件名错误
11. 使用端口是云服务器上的公共ip
12. 最好关闭防火墙,如果不关闭,需要释放端口