Claude Code+宝塔面板:网站上线部署的喂饭级教程,前端后端分分钟搞定!

143 阅读9分钟

哈罗,大家好,我是涛哥,上市公司程序员裸辞,All in AI,探索AI编程更多可能,主要使用Claude Code等AI编程工具进行开发,打造一人公司,立志在AI时代做出世界级产品。

现在在各种AI编程工具的加持下,让开发变得非常快,很多开发小白也能快速做出一个功能齐全的网站。

但是如何把做好的网站发布到线上,给其他用户访问、使用成了我们不得不面对的一个问题。

在昨天的这篇文章中 Claude和Cursor的最佳拍档!宝塔面板1小时成功上线(前端篇) 我们把前端页面已经在宝塔中部署好了。今天我们需要完成后端服务的部署,并配置 Nginx 网关,让前端页面能够顺利调用后端接口,最终实现一个完整的线上可访问网站。

这个教程使用后端的代码我以开源的这个项目 (github.com/samelltiger… 为例,该项目是这个提示词网站的后端服务的半成品仓库,我在这个半成品的基础上开发了提示词网站的相关接口。

先简单介绍一下这个仓库的文件:

prompt-backend-template/
├── cmd/                    # 主程序入口
│   └── main.go
├── internal/               # 内部业务逻辑
│   ├── api/               # API 路由和处理器
│   │   ├── admin/        # 管理员 API
│   │   ├── chat/         # 聊天接口
│   │   └── dashboard/    # 仪表板接口
│   ├── middleware/        # 中间件
│   ├── models/           # 数据模型
│   └── service/          # 业务服务层
├── pkg/                   # 公共库
│   ├── cache/            # 缓存组件
│   ├── cron/             # 定时任务
│   ├── database/         # 数据库连接
│   ├── logger/           # 日志组件
│   ├── oss/              # OSS 存储
│   ├── queue/            # 消息队列
│   └── util/             # 工具函数
├── config/               # 配置文件
│   ├── config.yaml      # 开发配置
│   └── config.prd.yaml  # 生产配置
├── web/                 # 静态文件(前端界面)
├── scripts/             # 脚本文件
├── docs/               # 文档
└── deploy/             # 部署文件

上面是原始代码文件目录和功能说明,但是这只是个半成品,因此我本地的文件目录是有所修改的,是增加了提示词数据拉取等接口逻辑的。下面开始利用宝塔程序来部署后端服务。

上传代码文件

首先,我们要将项目的代码文件夹压缩成zip文件(我本地后端代码文件夹为 nano-banana-prompt):

图片

压缩代码文件夹

压缩后的文件就在上图中第一个zip文件。

完成压缩之后,我们要打开宝塔的“文件”页面,并开始上传zip文件:

图片

上传zip文件

图片

点击开始上传后,等待文件上传完成,然后要对文件进行解压:

图片

解压上传的zip包文件

图片

解压zip文件的设置

下面是解压后文件夹文件列表的截图:

图片

解压后的文件列表

记住这个解压后的目录,后面会用到,比如我这里是 /www/wwwroot/nano-banana-prompt

在本地编译go代码

由于go语言是编译型语言,在运行之前需要编译的。虽然我们最终是在服务器上运行网站,但考虑到服务器可能没有安装 Go 环境,我们选择在本地编译成 Linux 可执行文件,再上传到服务器运行。

首先,在本地打开 终端程序或者 CMD程序:

图片

进入终端的后端代码目录

在终端或cmd中执行以下命令:

# 进入到后端代码目录 比如,我的是 h:/code/nano-banana-prompt
h:  # 说明:windows切换到h盘符就是这个命令
cd code/nano-banana-prompt

# 编译go代码为二进制程序
go env -w GOOS=linux; go env -w GOARCH=amd64; go build -o main .\cmd\main.go

# 重要:编译完以后需要恢复回来,要不然以后编译的都是linux程序
# 这个在windows里是运行不了的
# 重置为 Windows
$env:GOOS"windows"
$env:GOARCH"amd64"

编译完以后会得到一个main文件,这个文件就是编译出来的可以在Linux里面运行的文件:

图片

编译后的main程序

上传Linux可执行文件到服务器

我们再次进入宝塔的网页里,在服务器上的代码文件夹内(比如我这里是 /www/wwwroot/nano-banana-prompt 点击 上传/下载 按钮)

图片

上传文件1

上传刚才在windows下编译好的main文件:

图片

上传mainn文件

好了,到此,这个go项目所需要的所有文件就准备好了,下一步需要用宝塔将这个程序运行起来。

运行后端程序

为了运行这个后端程序,我们需要进入宝塔的 “网站页面”,点击 GO项目,再点击 “添加GO项目”。

图片

添加GO项目

在弹出的添加GO项目框中,配置如下内容:

注意,里面之所以配置为9702,是因为我们项目的配置文件config/config.yaml 里配置的端口就是9702,需要保持一致。

图片

配置GO项目

然后我们可以看到页面中多了一个任务记录,然后将这个程序启动起来。

图片

启动GO程序

验证是否启动成功:

你需要找一个你开发的接口,然后在终端或者cmd中执行如下命令:

curl --location --request GET \
'http://你的服务器的IP:9702/api/prompts?page=1&page_size=10

也可以用这个软件 Apifox,设置好你的接口地址和请求参数,看看接口有没有正常返回数据,如果有数据返回,那么表示是没什么问题的。

图片

调用验证接口

这样,我们的后端服务就已经运行起来了,接口也已经可以正常返回数据了。但是现在还有个问题,如果你打开前端页面,就会发现,前端页面里面的提示词数据还是没有拉取到啊。这是因为我们还缺少一步,需要再设置一下nginx网关服务器。

配置前端项目的nginx服务器

为什么要配置nginx服务器呢?

nginx是我们这个网站的入口,所有的请求都会经过这个入口

可以把网站想象成一家奶茶店,奶茶店里有两名员工:

前端小哥:负责把奶茶(网页)递送给顾客,长的帅,但是不懂怎么做奶茶的原料(数据)。

后端大厨:躲在厨房拼命煮珍珠、泡茶(数据),但不会直接面对顾客(用户)。

现在有个比较尴尬的问题:

顾客(浏览器/用户)想点一杯“提示词奶茶”,于是对前端小哥说:“我要 /api/prompts 口味!”

前端小哥一脸懵:“我只是个递奶茶的,厨房在哪?/api/prompts 是啥?我没听过啊!”

这时候就需要一个店长——Nginx:

店长站在柜台,所有顾客先找他。

他耳朵很灵,听到顾客说要 “/api/xxx” 的东西,立刻转身朝厨房大喊:“大厨!有人要 /api/prompts 数据!快端出来!”

大厨把数据做好后,店长再转手递给前端小哥,前端小哥笑眯眯地送给顾客。

简而言之,Nginx就是一个传话员。所以我们现在要做的就是,给店长(Nginx一本暗号手册),告诉他“只要听到 /api 开头的订单,一律送到厨房(后端服务程序)处理!”。

这个手册在实际配置中就是一段文本内容,把 /api 开头的请求转发到后端地址,比如 http://localhost:9702

nginx配置举例:

# 店长手册:遇到/api开头的url就转给厨房
location /api {
    proxy_pass http://localhost:9702;  # 后端大厨的厨房地址
}

正式配置nginx

现在我们就要给告诉nginx碰到那些情况要找大厨。

我们的后端接口的url全部是以 /api 开头的,所以就像上面那样在nginx里面添加一个 location /api 这个配置,下面配置的是 proxy_pass http://localhost:9702 ,意思就是:你如果碰到 /api 开头的请求,那么就转发到 http://localhost:9702 。这个9702就是我在后端程序 里面配置的那个端口。

开始配置Nginx,首先,我们先要打开“网站”页面,再点击HTML项目,再点设置。

图片

打开前端HTML项目,进行配置

在弹出的设置框中先点击 配置文件,再插入上面的nginx配置数据,最后点保存就可以了。

图片

配置nginx文件

最后一步,我们把nginx重启一下,让它读取到最新的配置文件。

图片

重启nginx服务

验证

至此,我们已经完成了:

    1. ✅ 后端代码编译和上传
    1. ✅ 宝塔中运行 Go 项目
    1. ✅ 配置 Nginx 转发规则
    1. ✅ 重启 Nginx 服务

打开网站的提示词列表页面验证一下:

配置前的页面报错情况:

图片

配置前,页面是报错状态,展示不出任何东西

完成nginx配置之后,刷新一下页面:

图片

配置之后,数据加载和展示都正常了

好了,我这里已经把网站的前后端上线的所有需要设置的东西都设置完了,你如果有自己开发的网站,可以按照上面的流程使用宝塔来试试,这个工具支持的语言非常多,基本上可以覆盖你所有的开发场景。

本提示词网站线上访问域名-演示站:nano-banana.yueshu365.cn

本文章已经把上线的核心步骤和流程每一步都清楚地写出来了,但是这个案例是一个具体的案例,不可能覆盖所有的情况,你自己开发的网站,还要你根据自己的实际情况举一反三,多用用,多问问AI,就能明白里面的功能了。

不要怕把环境搞坏,坏了大不了重新安装一下,又是一个新的。如果有什么难题卡住了,可以先问问AI,如果AI搞不定,也可以找我。

Claude Code优质内容

🚀 保姆级教程 | 从0到1搭建AI提示词网站(Go+Vue+Claude全流程)

Claude Code+宝塔面板:Nodejs/Next.js 网站上线部署的喂饭级教程,前端后端分分钟搞定!

Claude Code+宝塔面板:网站上线部署的喂饭级教程,前端后端分分钟搞定!

Claude 和 Cursor 的最佳拍档!宝塔面板 1 小时成功上线(前端篇)

3个月变永久!claude code给我写了一套脚本,帮我把网站HTTPS成本降为0

Claude Code+Jenkins急速打造网站部署的上线系统

“别再让AI网站丑下去了!”涛哥用Claude code实战MinIO主题移植,效果炸裂!完全去掉AI味!

粉丝福利

我这些天把我之前开发的提示词网站的开发全过程都整理了出来,形成了一篇非常详细的手册内容,目前已经有2万多字的内容,涵盖了环境搭建、开发、Claude code使用、所有功能的提示词、上线部署一整套工具的内容。

完整手册地址:egtmutdg24.feishu.cn/docx/OlzFdN…

图片 如果本期内容对你有用,还请不要吝啬你的三连+关注呀。我会持续输出AI编程的使用技巧和工具。