宝塔是个啥?

宝塔是一款 服务器可视化管理面板,核心作用是通过图形界面(而非纯命令行)简化服务器的配置、网站搭建、环境部署等操作,适合新手和运维人员高效管理服务器。

怎么部署宝塔

个人企业都可以搭建网站、博客、小程序后端
管理云服务器或本地服务器。
1,CentOS系统
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
2,Ubuntu/Debian系统
apt update && apt install -y wget && wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec
安装成功后会输出宝塔面板的登录信息
 

图片


快捷命令:
bt

以我搭建的网站为例

图片

为什么目录结构是这样?

在项目目录下面:

app.py:flask应用主程序(后端逻辑)

templates/文件:存放HTML模板

login.html:登录页面

用户访问/login,时的页面,包括一个简单的登录表单,登录时提交给后端进行身份验证。

register.html:用户注册页面。
home.html:登录的后端主页面

static/文件夹

存放静态资源(CSS/JS/图片)

css/:存放样式表
img/:存放图片
venv/:虚拟环境目录(python依赖)
这样放置便于管理

网站文件的大体结构是这样,然后怎么让它可以在公网上被访问?

怎么可以在公网进行访问

该网站是通过设置反向代理让Flask应用能够通过公网访问,并且可以快速接受到来自其他客户端的请求。
1,Flask在运行时会暴露一个本地地址(127.0.0.1:5000),这个地址能在本地进行访问,如果想让他可以被外网访问需要将Flask绑定到所有网络的接口(0.0.0.0)

    app.run(host="0.0.0.0", port=5000, debug=True)

host="0.0.0.0":Flask绑定到网络接口,允许外部访问。
port=5000:Flask默认5000端口
可以使用反向代理如Nginx来转发请求
方法:
1,设置代理的目标URL,就是你的Flask应用地址http://127.0.0.1:5000
2,设置发送的域名,通常是你希望用户访问的域名,如yourdomain.com

    listen 80;
    server_name yourdomain.com;  # 你的域名或 IP

    location / {
        proxy_pass http://127.0.0.1:5000;  # 转发到 Flask 应用
        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_pass http://127.0.0.1:5000 #请求代理到Flask应用所在的本地地址
proxy_set_header #这些配置用于转发请求头,确保Flask 应用能够知道真实的客户端和IP

在宝塔中设置反向代理就比较简单了

选择网站,然后要选择要设置代理的网站,然后选着设置,在左侧栏中选择反向代理。
代理名称:可以写flask
目标URL就是flask应用的本机地址和端口,一般是127.0.0.1:5000
发送域名:是127.0.0.1
代理目录是/
访问时的顺序大概是
 

图片

在Ubuntu本机部署,怎么让它可以在公网进行访问

首先,在阿里云中搭的网站是本来就有公网IP的,在本机Ubuntu就没有公网IP,怎么才能让它被公网访问呢?

现在就需要使用内网穿透

这里用cloudflared,这个不需要用公网IP,下面是操作步骤

我依旧用的是宝塔面板,下载过flask,nginx等

1,在Ubuntu进行操作

更新系统

sudo apt update && sudo apt upgrade -y

安装工具

sudo apt install git curl wget unzip -y

这个命令安装了git,curl,wget,unzip四个工具-y是确认

2,下载安装cloudflared

# 下载最新版本

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64

出问题怎么办

#GitHub可能会出问题,直接从/etc/systemd/resolved.conf改一下公共的DNS,添加Google,Cloudflare,阿里云DNS.重启服务后生效。

#添加正确的apt 源

# 1. 重新导入 Cloudflare GPG 公钥(确保密钥有效)

curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

# 2. 添加正确格式的 apt 源(注意 [] 括号和 signed-by 位置)
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list

sudo apt update # 此时不会再提示格式错误 sudo apt install cloudflared -y # 安装 cloudflared

# 赋予执行权限

chmod +x cloudflared

sudo mv cloudflared /usr/local/bin/

cloudflared --version

确认并运行项目

cd /www/wwwroot/mynote

conda activate kong

python app.py

默认访问http://127.0.0.1:5000,这个在flask项目可以改。

3,通过Cloudflared Tunnel暴露Flask

cloudflared tunnel --url http://localhost:5000

会自动生成一个公网URL打开这个URL就可以访问Flask网站,这个方法不需要公网IP也不需要DNS。

然后该网站可以被公网访问

还有如果有可以用的域名,比如说mynote.com

可以在Cloudflared DNS中添加CNAME,之后就可以用自己的域名访问了

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐