Flask项目摆设到阿里云服务器(全网最清楚简朴完备摆设),linux命令和脚本 ...

打印 上一主题 下一主题

主题 873|帖子 873|积分 2619

目次
一、获取免费阿里云服务器
二、长途控制阿里云服务器
三、安装nginx(web服务器)
1. 更新体系软件包:
2. 安装EPEL存储库
3. 安装Nginx
4. 启动Nginx服务并设置开机自启
5. 验证Nginx安装
四、安装python假造情况
1.查抄体系是否已安装Python3及其pip3:
2. 创建Python假造情况
3. 激活假造情况:
4. 安装项目所需Python包
5. 退出假造情况
五、导入项目文件
1. 确保假造情况已激活
2. 配置nginx
3. 确保flask项目中入口文件host=‘0.0.0.0’
4. 将当地flask项目文件(包罗源代码、配置文件、静态资源等)复制到假造情况地点的目次下
5. 在假造情况中安装Gumicorn

一、获取免费阿里云服务器

没有服务器的话可以在阿里云获取免费服务器
阿里云-计算,为了无法计算的代价
二、长途控制阿里云服务器

本文使用的XShell7
三、安装nginxweb服务器)

在摆设flask项目时间,因为flask是一个轻量级的Python Web框架,其自己并不包罗一个成熟的Web服务器组件,而是依赖于内置的浅易服务器(werkzeug)
1. 更新体系软件包:

  1. sudo yum update
复制代码
2. 安装EPEL存储库

  1. sudo yum install epel-release
复制代码

3. 安装Nginx

  1. sudo yum install nginx
复制代码

4. 启动Nginx服务并设置开机自启

  1. sudo systemctl start nginx
复制代码
为了让Nginx在体系启动时主动运行,实行:
  1. sudo systemctl enable nginx
复制代码
5. 验证Nginx安装

(1) 命令行查抄Nginx服务状态:
  1. sudo systemctl status nginx
复制代码

(2) 浏览器访问服务器的公共IP地点
Nginx默认监听在80端口,外部想使用nginx就需要云服务器开发80端口,在云服务器控制台的左侧导航栏找到安全组,点进安全组

点进后:

点击手动添加,授权策略:默认(允许);优先级默认:默认(1);协议类型:默认(TCP);端口: 80 ;授权对象:0.0.0.0/0。
表示允许所有外部IP地点访问,然后点击保存。

如果不能访问,大概是防火墙的问题,关闭防火墙大概允许nginx端口。
四、安装python假造情况

1.查抄体系是否已安装Python3及其pip3:

  1. python3 --version
  2. pip3 --version
复制代码

如果没有安装或版本过低:
  1. sudo yum install python3 python3-devel python3-pip
复制代码
2. 创建Python假造情况

在root目次下创建一个新的假造情况:
  1. mkdir my_flaskProject
  2. cd my_flaskProject
  3. python3 -m venv my_venv
复制代码
这里my_venv是假造机情况的名称,可以自己命名。

3. 激活假造情况:

  1. source my_venv/bin/activate
复制代码

激活后,命令行提示符前会表现假造情况的名字(my_venv),这表明当前正处于此假造情况中运行命令,此时安装的Python包将只在这个情况中生效,不会影响全局Python情况。
4. 安装项目所需Python包

在虚情况中,可以使用pip安装Flask和其他项目依赖:
  1. pip install Flask
  2. pip install -r requirements.txt  # 如果存在requirements.txt文件
复制代码
5. 退出假造情况

完成开发或摆设任务后,要退出当前假造情况,只需运行:
  1. deactivate
复制代码
五、导入项目文件

1. 确保假造情况已激活

如果未激活:
  1. source /root/my_flaskProject/my_venv/bin/activate
复制代码
大概会提示错误信息:Permission denied 表示当前没有充足的权限来实行 activate 脚本

运行如下命令:
  1. 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{…}块内添加
  1. server {
  2.   listen 80;  # 监听公网端口(此处为标准HTTP端口80)
  3.   server_name your_domain.com;  # 替换为您的域名或公网IP
  4.   
  5.   location / {
  6.   proxy_pass http://localhost:5000;  # 替换为项目实际监听的本地端口
  7.   proxy_set_header Host $host;
  8.   proxy_set_header X-Real-IP $remote_addr;
  9.   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10.   proxy_set_header X-Forwarded-Proto $scheme;
  11.   }
  12. }
复制代码
这段配置是告诉Nginx监听公网端口80,并将所有到此服务器的哀求转发到当地端口8080(是你的python项目当地运行的端口)。同时设置了必要的代理头信息。
重启Nginx服务:
  1. sudo systemctl restart nginx
复制代码
查抄配置和日志
nginx -t
3. 确保flask项目中入口文件host=‘0.0.0.0’

端口号为上述在nginx配置的项目实际监听的端口号。
  1. if __name__ == '__main__':
  2.     app.run(host='0.0.0.0', port=5000, debug=True)
复制代码
4. 将当地flask项目文件(包罗源代码、配置文件、静态资源等)复制到假造情况地点的目次下

  1. cp -r /path/to/your_project /root/my_flaskProject/my_venv/
复制代码
设置情况变量:如果应用初始化在app.py文件中则:
  1. export FLASK_APP=app.py
复制代码
如果是其他文件,例如入口在myflask.py中则:
export FLASK_APP=myflask (去掉.py)
运行:flask run
  1. netstat -tulpn | grep :5000
复制代码
查看端口5000进程
杀死进程:kill -9 进程id
5. 在假造情况中安装Gumicorn

假造情况(如使用 virtualenv 或 conda 创建的情况)为项目提供了独立的Python运行情况。在其中安装Gunicorn和其他依赖,可以确保项目使用的是特定版本的软件包,避免与其他项目或体系全局包产生版本辩论。如许,每个Flask应用可以拥有自己的依赖集,易于管理和更新,且不会影响到服务器上其他应用程序。
  1. pip install gunicorn
复制代码
配置Gunicorn运行Flask应用: 创建一个Gunicorn启动脚本:
  1. vim gunicorn_start.sh
  2. #!/bin/bash
  3. # 设置工作目录(这里替换成您的Flask应用所在的目录)
  4. working_directory=" /root/my_flaskProject/my_venv/"
  5. # 切换到工作目录
  6. cd "$working_directory"
  7. # 设置环境变量,如果适用
  8. export FLASK_APP=myflask.py
  9. export FLASK_ENV=production
复制代码
# 启动Gunicorn,指定监听地点和端口,以及应用入口点
  1. exec gunicorn --bind 0.0.0.0:5000 myflask:app
复制代码
给启动脚本赋予权限:
  1. chmod +x gunicorn_start.sh
复制代码
启动Gunicorn服务:
  1. ./gunicorn_start.sh
复制代码
成功后,可以查看进程
然后在nginx.conf配置(刚刚在导入项目时实在已经配置过…):
  1. server {
  2.                 listen 80;  # 监听公网端口(此处为标准HTTP端口80)
  3.                 server_name 114.55.118.198;  # 替换为您的域名或公网IP
  4.                 location / {
  5.                         proxy_pass http://localhost:5000;  # 替换为项目实际监听的本地端口
  6.                         proxy_set_header Host $host;
  7.                         proxy_set_header X-Real-IP $remote_addr;
  8.                         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  9.                         proxy_set_header X-Forwarded-Proto $scheme;
  10.                         proxy_redirect off;
  11.                         proxy_buffering off;
  12.                         proxy_http_version 1.1;
  13.                         proxy_set_header Upgrade $http_upgrade;
  14.                         proxy_set_header Connection "upgrade";
  15.                         proxy_read_timeout 600s;
  16.                 }
  17.         }
复制代码
完成配置后,实行以下操作以查抄配置文件的正确性并重启Nginx服务:
  1. sudo nginx -t
  2. sudo systemctl restart nginx
复制代码
启动Gunicorn服务: 通过实行该脚本来启动Gunicorn服务:

如果先前有运行的端口占用,杀死进程重新启动
打开公网地点!成功!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曂沅仴駦

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表