返回文章列表
发布

🚀 从踩坑到白嫖:我是如何把全栈项目部署上线的?(含 GitHub 学生包实战)

#部署 #全栈开发 #Linux #GitHub #经验分享

前言: 距离 2026 年 6 月毕业还有半年,作为一名全栈方向的应届生,我深知“Talk is cheap, show me the code”。 只有把跑在本地 localhost 的代码,真正部署到公网服务器上,才算是一个完整的作品。

这篇文章记录了我从腾讯云买域名,到硬着头皮配 Linux 环境,最后发现 GitHub 学生包真香定律的完整折腾过程。如果你也想搭建个人博客或展示项目,希望我的踩坑经历能帮你省下几百块钱和几根头发。


🏗️ 起步:第一笔“学费”与腾讯云的初体验

最开始,我和大多数同学一样,觉得“做网站”的第一步肯定是买域名。

当时没多想,直接打开了腾讯云。挑挑选选,注册了人生中第一个域名。看着控制台里那个属于我的域名,当时心情特别激动,感觉离“互联网大佬”只差一步之遥了。

但随之而来的就是解析配置的懵懂。什么是 A 记录?什么是 CNAME?我照着教程,把域名解析到了我的服务器 IP 上。当我在浏览器里输入域名,第一次看到 Nginx 的欢迎页时,那种成就感真的无以言表。

💡 经验总结: 国内大厂购买域名很方便,支付、认证、备案不到1小时搞定。当然,这是在不缺钱的情况下。

⚔️ 进阶:部署才是最大的 Boss

有了域名和服务器(我用的是 DigitalOcean 的新加坡节点,也是学生包送的),真正的挑战才刚刚开始。

我的项目是一个 Vue3 + Spring Boot 的毕设网上调查系统前后端分离系统。在本地 Windows 上跑得飞起,一上 Linux 服务器,各种水土不服。

1. Nginx 的“迷魂阵”

我把 Vue 打包好的 dist 文件夹传上去,配置好 Nginx,结果访问页面一片白,或者直接 404。 后来才明白,Linux 的文件权限是关键!

Bash

# 这一行命令救了我
chmod -R 755 /var/www/html/survey

不给读取权限,Nginx 根本进不去目录,自然什么都显示不出来。

2. 后端“失联”与 CORS 跨域

最崩溃的一次,网页能打开了,但点击“登录”直接报错 Network Error。 我打开 F12 一看,好家伙,请求地址竟然还是: http://localhost:8081/api/login

那一刻我悟了: 前端代码是在用户浏览器里跑的,我写 localhost,它访问的是用户自己的电脑,而不是我的服务器! 解决办法: 必须把前端的 BaseURL 改成相对路径或者真实域名,重新打包上传。

3. 让 Java 后台“永生”

刚开始用 java -jar app.jar 启动后端,结果我一关 SSH 窗口,网站就挂了。 查了半天资料,学会了 nohup 命令:

Bash

nohup java -jar app.jar > log.txt 2>&1 &

看着日志里输出 Started Application,我知道,在这个互联网的角落,有一个小小的进程将 24 小时为我守候。

🎁 惊喜:发现 Namecheap 的免费午餐

在折腾完一圈后,我偶然了解到了 GitHub Student Developer Pack(GitHub 学生开发包)。 一看列表,我拍断大腿:“原来我之前花的钱都是冤枉钱!”

GitHub 给学生送了 Namecheap 的一年免费域名,而且是 .me 结尾的域名(比如我的 linjingbiao.me),还有免费的 SSL 证书。

领取过程其实不难:

  1. 认证 GitHub 学生身份: 这一步最关键,千万不要挂梯子!用手机直连,拍照上传学生证或学信网报告。
  2. 关联 Namecheap: 通过 GitHub 授权登录 Namecheap,搜索你想要的名字。
  3. 结账: 价格直接变成 $0.00。

拿到 linjingbiao.me 后,我果断把我的博客解析了过去。相比于通用的 .com.cn,用 .me(It’s me)作为个人主页的后缀,感觉更有个性,也更符合个人开发者的调性。

📝 尾声:给同路人的建议

从腾讯云付费买域名,到 Namecheap 白嫖免费域名;从 localhost 报错,到成功部署上线。这几天的经历,比我在书本上学到的东西都要深刻。

如果你也是校招路上的战友,或者想做独立开发,我有两点建议:

  1. 善用学生身份: GitHub 学生包、阿里云学生权益(最近刚领了300元神券!),这些资源足够把你武装到牙齿,千万别浪费。
  2. 不要怕折腾: 每一次报错(Error),都是一次成长的机会。当你解决了 Connection Refused,解决了跨域,解决了权限问题,你的技术栈也就厚实了一分。

希望我的经历能给你一点启发。我的项目已经上线了,欢迎来踩:http://linjingbiao.me 👋

评论区暂未开启(可通过 PUBLIC_GISCUS_* 环境变量配置)。