ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

2026个人网站搭建全攻略:从腾讯云选型到HTTPS上线部署

2026/9/16 1:01:23 拓冰建站 浏览量
2026个人网站搭建全攻略:从腾讯云选型到HTTPS上线部署 上个月帮一个完全不懂代码的朋友把他的小站跑起来了从买服务器到域名能访问全程用了小半天。他问我就这么简单是的就这个量级。个人网站搭建这件事本身并不难难的是没人一次性把链路讲清楚。我在腾讯云上搭过十几个站从最简单的Hexo博客到WordPress内容站再到前后端分离的Spring BootVue应用该踩的坑基本都踩过了。2026年了网上的教程还停留在改宝塔面板端口、用root裸奔连服务器那套老路上。这篇文章就按我自己实际操作的顺序来写买什么配置不亏、到手后怎么加固、用哪种方式部署最省心、域名和HTTPS怎么配、上线之后怎么维护。全文不会有一条多余的命令照着做就能把网站跑起来。1. 下单前先想清楚这三件事配置、地域和续费1.1 轻量应用服务器还是CVM云服务器腾讯云下有两类产品名字容易搞混轻量应用服务器Lighthouse和云服务器CVM。如果2026年还有人推荐新手去买按量计费的CVM那基本是在坑你。CVM的优势是可自定义网络、磁盘、快照策略适合要做复杂网络方案的场景。但个人网站用不上这些。轻量应用服务器把公网IP、带宽、防火墙、监控、快照打包在一起购买时选一个套餐开箱即用价格常年比同配置CVM便宜一截。对比项轻量应用服务器CVM云服务器价格套餐制便宜组件拆分计费偏贵网络固定带宽/流量包按带宽计费可弹性调整防火墙自带轻量防火墙依赖安全组系统防火墙适用场景个人网站、小型应用企业级、复杂网络架构个人用轻量基本就是唯一正解。你要是真的需要自定义子网、独立安全组、弹性网卡这些能力也不会来看这篇入门指南。1.2 2核2G还是2核4G带宽怎么选配置不用往高了堆按站点类型对号入座静态博客Hexo/Hugo/VuePress2核2G 3M带宽绰绰有余WordPress/Typecho这类动态站2核4G 3~5M带宽原因是PHPMySQL在低配下遇到稍微大点的页面请求就容易卡内存别省打算跑前后端分离容器化Spring Boot/Vue/Docker2核4G起步有条件就4核8G编译时差距非常大带宽不用迷信大。3M带宽对个人网站意味着每秒最大约375KB的传输速度文本页面几十KB一个并发不高的情况下完全够用。真正吃带宽的是图片和视频如果你有计划放大量高清图再考虑升带宽或上CDN。一个冷知识很多人的网站卡不是因为服务器配置低而是第一个请求就慢在数据库连接、缺少页面缓存、Nginx配置没调好。先按上面标准买省下的钱后面再升级也不迟。1.3 地域选择以及备案这个绕不开的话题地域建议选靠近绝大多数访问者的地方。你的朋友都是国内用户就选上海、广州、成都这些国内节点时延最低。但这里有一个绕不开的流程使用中国大陆地域的服务器域名要完成ICP备案才能提供网页服务。备案不难腾讯云控制台有「网站备案」入口按向导填资料、传身份证、做人脸核验一般审核周期几个工作日到二十天不等。个人网站的备案流程相对简单只要网站内容符合规范基本都能通过。备案通过后域名才能正常解析到这台服务器上访问。我建议你体面地把这件事做掉。它花不了太多时间做完之后域名解析、端口、CDN这些都不会有后续麻烦。1.4 新用户优惠价的续费陷阱重点腾讯云对新人确实有非常狠的折扣常见的是轻量应用服务器首年几十块钱。但一定要看清楚活动页的说明续费价格是不是原价。很多新人价只保首年第二年恢复原价甚至翻倍。到位做法是买之前就规划好至少用一年。一年后要么接受原价续费要么等新的活动——腾讯云的活动规律是老用户有时候也能领到不错的续费券偶尔还有续费专场。不要因为首年便宜就一次性买三年万一第二年你不想用了退货和迁移都很费劲。2. 服务器到手30分钟SSH登录、密钥配置与基础加固买了服务器的第一时间先做三件事改密码、配置密钥登录、创建普通用户。这几步做完这台机器才算是自己的。2.1 通过控制台重置密码和Web Shell登录腾讯云轻量控制台里可以点「重置密码」设置root密码。然后可以直接用网页里的「登录」按钮打开Web Shell基于浏览器的终端。Web Shell不依赖本机任何工具适合在外网环境应急操作。但它有一个明显的缺点浏览器里操作快捷键不顺手复制粘贴还会偶尔出问题。所以它只能算临时入口真正的日常操作应该放到本机终端里。2.2 本机生成SSH密钥实现免密登录这一步会让后续所有SSH操作变得无比顺畅。本地终端执行ssh-keygen -t ed25519 -C mynameexample.com一路回车生成在~/.ssh/下。然后把公钥传到服务器ssh-copy-id root你的服务器IP它会提示输入一次密码之后ssh root你的服务器IP就不再要密码了。ed25519是目前主流推荐的非对称加密算法密钥短、速度快兼容性也完全够。2026年了就别再生成2048位的RSA了除非你确实有老系统要兼容。2.3 创建普通用户关掉root密码登录用root裸奔不是不行而是风险不值得。SSH爆破是每天都会发生的脚本行为虽然强密码能扛住但多留一条安全边界总没错。创建普通用户并赋予sudo权限useradd -m -s /bin/bash deploy passwd deploy usermod -aG sudo deploy然后把公钥复制给deploy用户mkdir -p /home/deploy/.ssh cp ~/.ssh/authorized_keys /home/deploy/.ssh/ chown -R deploy:deploy /home/deploy/.ssh修改SSH配置sudo vim /etc/ssh/sshd_config关键几项Port 2222 PermitRootLogin prohibit-password PasswordAuthentication no PubkeyAuthentication yes提醒一下Port改成2222之后测试连接成功之前不要关闭当前SSH会话。很多人改完配置、忘了放行防火墙直接把自己锁在门外。重启sshd后新开一个终端用ssh -p 2222 deploy服务器IP登录测试成功后再回去关旧会话。注意如果使用了非默认SSH端口腾讯云控制台的防火墙规则里一定要放行对应端口否则外部无法访问。2.4 顺手把系统更新和防火墙配好sudo apt update sudo apt upgrade -y sudo apt install ufw -y sudo ufw allow 2222/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enableUbuntu/Debian系的ufw非常直观三条放行规则就把常用的端口开好其余的一律默认拒绝。如果后面还要跑其他服务再单独加规则。3. 环境搭建不踩坑Nginx手动部署、Docker还是宝塔面板很多人卡在这一步环境到底怎么搭我的建议是——先想清楚你要做什么站点再选工具。三种方式各有适用场景没有绝对的好坏。3.1 三种方式怎么选方式上手难度适用场景我的看法手动装Nginx/LNMP中静态站、一个Nginx就能跑学习价值高推荐新手走一遍宝塔面板低WordPress/动态站点不想碰命令行效率高但记得做安全设置Docker Compose中高前后端分离、多组件应用现代应用的最佳实践值得学3.2 手动部署Nginx个人网站的第一块基石如果只是放一个静态博客或HTML页面Nginx就够了sudo apt update sudo apt install nginx -y sudo systemctl enable --now nginx装完浏览器访问服务器IP如果能打开Nginx默认页面就说明80端口通了。默认站点目录在/var/www/html静态网页丢进去就能跑。Nginx的默认配置路径是/etc/nginx/sites-available/和/etc/nginx/sites-enabled/推荐在sites-available里写配置再用软链接启用。这个习惯可以让你在机器上同时管理多个站点而不互相干扰。3.3 想用宝塔面板装之前想好安全问题宝塔的价值在于把LNMP环境的安装、站点配置、数据库管理全部图形化对不会命令行的人确实友好。安装命令直接在官网复制运行后会给一个控制台地址和账号密码。用宝塔有几个必须做的动作登录后立即改默认端口和默认账号密码开启面板SSL不要用面板自带的极速安装一键装一堆你用不上的组件装Nginx、MySQL、PHP就够入口路径改复杂一点避免被扫描到后台登录页宝塔确实方便但它自带的管理程序和组件更新都需要关注时不时会报安全补丁。如果不太熟悉Linux装了宝塔之后更要保持系统和面板更新。3.4 用Docker部署一套配置到处跑Docker适合更复杂的架构比如前端Nginx容器、后端Spring Boot容器、MySQL容器通过docker-compose.yml一键拉起。好处是环境隔离、可复制、不用在宿主机上脏装一堆依赖。示例docker-compose.yml一个Nginx 一个后端服务version: 3.8 services: web: image: nginx:alpine container_name: nginx_web ports: - 80:80 - 443:443 volumes: - ./html:/usr/share/nginx/html - ./nginx/conf.d:/etc/nginx/conf.d - ./ssl:/etc/nginx/ssl restart: always app: build: ./app container_name: myapp expose: - 3000 restart: always个人博客如果只是静态站其实用不上Docker直接扔Nginx目录里就行。但如果你打算长期折腾技术、想在服务器上跑多个项目Docker是未来最省心的解。4. 把代码送上线从本地上传到服务器部署的完整链路环境搭好了现在把网站文件弄到服务器上去。这一步有很多路径我按实际操作频率从高到低写三个。4.1 静态站最直接scp/rsync上传scp -P 2222 -r ./public deploy你的IP:/var/www/html/小站点用scp没问题文件多了建议用rsync它只传输有差异的部分还能删除远程多余文件rsync -avz --delete -e ssh -p 2222 ./public/ deploy你的IP:/var/www/html/-a保留文件属性-z压缩传输--delete让本地和远程保持一致——本地删掉的文件远程也同步删掉这对发布新版本非常有用。4.2 有代码仓库的项目Git拉取部署如果项目托管在GitHub/Gitee服务器上装好Git克隆一次之后每次更新就是cd /var/www/myapp git pull origin main更进阶可以配Webhook每次推送代码到仓库仓库自动通知服务器的webhook接口服务器脚本自动拉取、构建、重启服务。这一步适合有编程基础的人折腾配上之后边写边发布体验很好。4.3 前后端分离项目构建、打包、反向代理前端项目Vue/React先在本机构建npm install npm run build得到dist目录里面是纯静态文件。把这些文件传到服务器的一个目录下比如/var/www/vue-app/然后用Nginx提供一个入口。后端项目Spring Boot打成jar包上传Java应用推荐用systemd托管写一个service文件[Unit] DescriptionMy Spring Boot App Afternetwork.target [Service] Userdeploy WorkingDirectory/home/deploy/myapp ExecStart/usr/bin/java -jar myapp.jar --server.port8080 Restartalways RestartSec10 [Install] WantedBymulti-user.targetsudo systemctl daemon-reload sudo systemctl enable --now myappNginx里把/的请求反向代理到http://127.0.0.1:8080用户访问的就是你的Java应用了。我把完整的Nginx反代配置放在下一章和域名绑一起讲因为这两件事本来就该一起做。5. 域名解析与HTTPS给网站一个正式的身份服务器IP不好记别人也不该通过一长串数字访问你的网站。域名是门牌号HTTPS是门锁缺一不可。5.1 买域名、配解析域名在腾讯云或DNSPod购买个人博客选.com、.cn、.dev之类都行价格看后缀。买了之后进入DNS解析控制台添加记录常用解析记录类型记录类型含义使用场景A记录域名指向IPv4地址最常用example.com - 服务器IPCNAME域名指向另一个域名www - example.com 这类别名MX邮件服务器记录配置邮箱时用TXT任意文本记录验证域名所有权、配置SPF等具体操作添加一条A记录主机记录填记录值填服务器IP再添加一条A记录主机记录填www同样指向服务器IP。TTL可以保持默认600秒生效后域名就能访问到服务器。5.2 备案的顺序和操作要点回到第一章提过的事用中国大陆地域的服务器提供网站服务必须先完成ICP备案。实际操作的顺序建议是先买域名、先买服务器在腾讯云控制台提交备案申请按流程填主体信息个人备案填身份证、联系方式和网站信息腾讯云初审通过后进行短信核验/人脸核验然后提交到管局管局审核通过后会收到短信/邮件通知备案号下来备案期间域名可以先不正式启用等备案通过后再配置解析。这是标准合规流程耐心走完就不用担心后面被拦截。5.3 用acme.sh免费签发Lets Encrypt证书HTTPS证书现在完全不需要花钱。Lets Encrypt的证书用acme.sh脚本自动签发和续期已经是我长期使用的方案。安装并签发curl https://get.acme.sh | sh acme.sh --issue -d example.com -d www.example.com --webroot /var/www/html然后安装证书到Nginx使用的目录acme.sh --install-cert -d example.com \ --key-file /etc/nginx/ssl/example.com.key \ --fullchain-file /etc/nginx/ssl/example.com.pemacme.sh会自动续期装上就基本不用管了。我遇到过唯一的问题是某些云厂商的DNS API权限没配好导致续期失败如果你用DNS验证方式记得检查API Token仍然有效。5.4 Nginx站点配置HTTP跳HTTPS 反向代理一次讲清在/etc/nginx/sites-available/创建你的站点配置文件server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name example.com www.example.com; ssl_certificate /etc/nginx/ssl/example.com.pem; ssl_certificate_key /etc/nginx/ssl/example.com.key; root /var/www/html; index index.html; # 纯静态网站就用这个 location / { try_files $uri $uri/ 404; } # 如果是反向代理到后端比如Spring Boot # location / { # proxy_pass http://127.0.0.1:8080; # 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; # } }启用站点sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginxnginx -t是一个极其重要的习惯——改完配置先测试语法再reload。直接reload如果配置有误可能导致整个Nginx起不来到时候所有站点全部挂掉就麻烦了。6. 网站上线之后日志、监控、备份与常见故障排查很多人把网站跑起来就以为万事大吉了。实际上真正考验运维水平的是上线之后那一堆琐碎事。6.1 网站突然打不开按这个顺序排查我个人的排查链路是固定的从外到内一层层剥本机curl -I https://example.com看返回码ping 域名确认DNS解析是否正常telnet 服务器IP 443确认端口通不通腾讯云控制台看防火墙规则是否放行80/443服务器上sudo systemctl status nginx确认真在跑看Nginx错误日志/var/log/nginx/error.log多数答案在这里这条链路能过滤掉80%的问题。最常见的是域名解析改了没生效TTL缓存、防火墙没放行新端口、Nginx配置写错没reload。6.2 磁盘空间个人网站最容易忽略的杀手个人网站流量不大但日志和数据库文件会悄悄涨。尤其Nginx的access log在没配轮转的情况下几个月能攒几个G。定期检查df -h sudo du -sh /var/log/nginx/*清理journal日志systemd的日志也可能吃几Gsudo journalctl --vacuum-size100M配置日志轮转编辑/etc/logrotate.d/nginx默认的daily轮转基本够用确保compress选项开着。6.3 自动化备份用crontab 对象存储这里提供一个简单可靠的备份方案。数据库用mysqldump导出网站文件用tar打包再上传到腾讯云对象存储COS。#!/bin/bash BACKUP_DIR/var/backups DATE$(date %F) # 备份网站文件 tar -czf $BACKUP_DIR/website-$DATE.tar.gz /var/www/html # 备份数据库如果有的话 # mysqldump -u root -p密码 mydb $BACKUP_DIR/db-$DATE.sql # 上传到COS用coscmd工具 coscmd upload $BACKUP_DIR/website-$DATE.tar.gz backup/ coscmd upload $BACKUP_DIR/db-$DATE.sql backup/ # 删除7天前本地备份 find $BACKUP_DIR -type f -mtime 7 -deletecrontab里加一行0 3 * * * /usr/local/bin/backup.sh每天凌晨3点自动备份。COS的存储费用很低这个方案基本等于花几块钱买一年的网站保险。6.4 监控简单的就行别一上来就上全家桶个人网站不需要一开始就搭Prometheus Grafana这种重量级监控。先用好腾讯云自带的监控面板看CPU、内存、带宽、磁盘曲线够用了。如果你想要更主动的告警部署一个Uptime Kuma每分钟探测你的网站是否返回200挂了就发邮件/Telegram通知。它本身也是一个Docker容器部署很轻量version: 3 services: uptime-kuma: image: louislam/uptime-kuma:1 container_name: uptime-kuma ports: - 3001:3001 volumes: - ./uptime-data:/app/data restart: always监控的意义不是让你时刻盯着而是当网站挂了你能第一时间知道而不是等用户来告诉你。6.5 安全补强做完这几件事基本不用慌个人网站的安全其实不需要过度紧张但基础三件套建议安排上安装并启用UFW防火墙第二章讲过定期sudo apt update sudo apt upgrade把系统安全补丁打上如果用了WordPress这类CMS保持插件和主题更新这是漏洞重灾区如果网站只是展示信息、不涉及用户注册和登录攻击面其实很小。反过来如果有用户输入至少要在应用层面对参数做校验SQL注入和XSS的坑不能指望服务器层面来防。腾讯云也提供WAFWeb应用防火墙这类安全防护产品有需要可以接入但就我自己的经验而言个人网站先把基础和代码层面的问题处理好比堆一堆安全产品更实际。从买服务器到网站稳定跑起来整个过程其实就是这几件事。你跟着走一遍后面再遇到问题基本都能自己定位。我也建议把这几个步骤里用到的命令存成一个自己的部署笔记下次再开新站照着跑一遍就完事了。