ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Flask项目部署到阿里云服务器(全网最清晰简单完整部署),linux命令和脚本文件 nginx安装到服务器等每一步清晰记录

Flask项目部署到阿里云服务器(全网最清晰简单完整部署),linux命令和脚本文件 nginx安装到服务器等每一步清晰记录 目录一、获取免费阿里云服务器二、远程控制阿里云服务器三、安装nginxweb服务器1. 更新系统软件包2. 安装EPEL存储库3. 安装Nginx4. 启动Nginx服务并设置开机自启5. 验证Nginx安装四、安装python虚拟环境1.检查系统是否已安装Python3及其pip3:2. 创建Python虚拟环境3. 激活虚拟环境4. 安装项目所需Python包5. 退出虚拟环境五、导入项目文件1. 确保虚拟环境已激活2. 配置nginx3. 确保flask项目中入口文件host0.0.0.0’4. 将本地flask项目文件包括源代码、配置文件、静态资源等复制到虚拟环境所在的目录下5. 在虚拟环境中安装Gumicorn* *一、获取免费阿里云服务器----------------没有服务器的话可以在阿里云获取免费服务器阿里云-计算为了无法计算的价值二、远程控制阿里云服务器----------------本文使用的XShell7三、**安装nginx*web服务器**-------------------------------------在部署flask项目时候因为flask是一个轻量级的Python Web框架其本身并不包含一个成熟的Web服务器组件而是依赖于内置的简易服务器werkzeug### 1. 更新系统软件包 sudo yum update### 2. 安装EPEL存储库 sudo yum install epel-release### 3. 安装Nginx sudo yum install nginx### 4. 启动Nginx服务并设置开机自启 sudo systemctl start nginx为了让Nginx在系统启动时自动运行执行 sudo systemctl enable nginx### 5. 验证Nginx安装(1) 命令行检查Nginx服务状态 sudo systemctl status nginx(2) 浏览器访问服务器的公共IP地址Nginx默认监听在80端口外部想使用nginx就需要云服务器开发80端口在云服务器控制台的左侧导航栏找到安全组点进安全组点进后点击手动添加授权策略默认允许优先级默认默认1协议类型默认TCP端口 80 授权对象0.0.0.0/0。表示允许所有外部IP地址访问然后点击保存。如果不能访问可能是防火墙的问题关闭防火墙或者允许nginx端口。四、安装python虚拟环境--------------------------### 1.检查系统是否已安装Python3及其pip3: python3 --version pip3 --version如果没有安装或版本过低 sudo yum install python3 python3-devel python3-pip### 2. 创建Python虚拟环境在root目录下创建一个新的虚拟环境 mkdir my_flaskProject cd my_flaskProject python3 -m venv my_venv这里my_venv是虚拟机环境的名称可以自己命名。### 3. 激活虚拟环境 source my_venv/bin/activate激活后命令行提示符前会显示虚拟环境的名字my_venv,这表明当前正处于此虚拟环境中运行命令此时安装的Python包将只在这个环境中生效不会影响全局Python环境。### 4. 安装项目所需Python包在虚环境中可以使用pip安装Flask和其他项目依赖 pip install Flask pip install -r requirements.txt # 如果存在requirements.txt文件### 5. 退出虚拟环境完成开发或部署任务后要退出当前虚拟环境只需运行 deactivate五、导入项目文件------------### 1. 确保虚拟环境已激活如果未激活 source /root/my_flaskProject/my_venv/bin/activate可能会提示错误信息Permission denied 表示当前没有足够的权限来执行 activate 脚本运行如下命令 chmod x /root/my_flaskProject/my_venv/bin/activate赋予 activate 脚本执行权限再次激活前面出现my_venv激活成功### 2. 配置nginx编辑Nginx的服务器配置文件通常位于/etc/nginx/sites-available/目录下**如果没有sites-available这个目录可按照如下进行配置**打开/etc/nginx/nginx.conf文件在http{…}块内添加 server { listen 80; # 监听公网端口此处为标准HTTP端口80 server_name your_domain.com; # 替换为您的域名或公网IP location / { proxy_pass http://localhost:5000; # 替换为项目实际监听的本地端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-ProtoKaTeX parse error: Expected EOF, got } at position 14: scheme; }̲ }这段配置是告诉Ngi…working_directory # 设置环境变量如果适用 export FLASK_APPmyflask.py export FLASK_ENVproduction# 启动Gunicorn指定监听地址和端口以及应用入口点 exec gunicorn --bind 0.0.0.0:5000 myflask:app给启动脚本赋予权限 chmod x gunicorn_start.sh启动Gunicorn服务 ./gunicorn_start.sh成功后可以查看进程然后在nginx.conf配置刚刚在导入项目时其实已经配置过… server { listen 80; # 监听公网端口此处为标准HTTP端口80 server_name 114.55.118.198; # 替换为您的域名或公网IP location / { proxy_pass http://localhost:5000; # 替换为项目实际监听的本地端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; proxy_buffering off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; proxy_read_timeout 600s; } }完成配置后执行以下操作以检查配置文件的正确性并重启Nginx服务 sudo nginx -t sudo systemctl restart nginx启动Gunicorn服务 通过执行该脚本来启动Gunicorn服务如果先前有运行的端口占用杀死进程重新启动打开公网地址成功
返回列表