个人 web 服务器配置方案,个人搭建 web 服务器教程

自己搭建Web服务器,最让人纠结的往往不是技术操作,而是方案选型。云服务器、闲置旧电脑、树莓派、NAS都可以用来搭建,但每种方案遇到的问题差别很大。先确定好方案,后续操作才有清晰方向。

方案选择:先看你手头有什么设备

完全没有硬件基础,只想快速上线个人网站,购买云服务器是最简单的办法。阿里云、腾讯云、华为云的轻量应用服务器入门款2核2G内存,一年花费不到一百元,操作系统选择Ubuntu 22.04或者24.04。购买完成之后,在控制台安全组放行80、443、22端口,使用SSH工具连接服务器,之后就在Linux系统内操作。这套方案自带公网IP,不用折腾路由器。国内节点绑定域名需要备案,不想走备案流程,可以选择香港或者新加坡节点,代价是网络延迟更高。

个人 web 服务器配置方案,个人搭建 web 服务器教程

家里有闲置台式机或者笔记本,安装Ubuntu Server系统也能充当服务器。好处是不用额外花钱,数据保存在本地设备。难点在于公网访问,家庭宽带的公网IP是动态分配状态,很多运营商已经不再提供公网IP。这种情况要么用DDNS把变动IP绑定域名,要么用frp、Tailscale这类内网穿透工具对外暴露服务。frp需要一台带公网IP的服务器做流量中转,Tailscale配置简单,安装客户端就能组建虚拟内网,适合个人或者小范围访问。

树莓派和NAS的思路相近,功耗低,可以长时间开机,不过硬件性能有限。跑静态网站、轻量博客或者Home Assistant没问题,数据库密集型业务运行起来会吃力。

软件栈:LNMP还是LAMP

Linux环境主流组合是Nginx搭配MySQL和PHP,也就是LNMP。Nginx处理静态文件效率高,并发能力强,反向代理功能成熟。数据库选用MySQL 8.0版本,PHP版本8.1及以上。不想手动逐个安装组件,可以用宝塔面板一键部署整套环境,图形界面管理站点、数据库、SSL证书。缺点是宝塔会占用一部分系统资源,面板暴露在公网存在安全隐患,部署完成之后记得修改面板端口,或者限制仅指定IP访问。

如果习惯使用Apache,LAMP也能正常使用,.htaccess文件可以灵活调整配置,但内存占用和性能表现不如Nginx。新手优先选择LNMP,网上教程资源多,遇到故障方便查找解决方案。

Web服务器部署完成,网站文件存放在/var/www/html或者自定义目录。Nginx站点配置文件路径/etc/nginx/sites-available/,创建软链接放到sites-enabled目录,执行nginx -t校验配置,systemctl reload nginx重载服务。这几条命令会反复用到。

域名和SSL:这两步不能省略

域名可以在阿里云、腾讯云、Namecheap等平台注册,添加A记录指向服务器IP。国内服务器必须完成备案,备案周期7至20个工作日,备案期间可以直接用IP访问测试。域名解析生效一般几分钟到数小时,执行ping 你的域名核对返回IP是否正确。

SSL证书选用Let's Encrypt免费证书,宝塔面板支持一键申请,命令行操作可以使用certbot。安装certbot之后运行certbot --nginx,工具自动修改Nginx配置、申请证书并配置自动续期。证书有效期90天,certbot依靠定时任务自动续期,保证服务器cron服务正常运行即可。不想使用certbot,acme.sh是替代方案,纯Shell脚本,不依赖Python环境。

安全:个人服务器不能裸奔上线

服务器接入公网之后,会持续受到端口扫描。SSH默认22端口每天都会收到大量暴力破解请求,不做防护很容易被入侵。把SSH端口修改为高位端口,禁止root账号直接登录,使用密钥认证替代密码登录。做完这三项,能拦截绝大多数自动化攻击。

防火墙使用ufw或者firewalld,只开放业务必需端口。Web服务开放80和443,SSH使用修改后的端口,其余端口全部关闭。数据库3306端口不要对公网开放,仅限本地访问。Nginx层面配置基础安全头,例如X-Content-Type-Options: nosniff、X-Frame-Options: SAMEORIGIN,添加limit_req限制单IP请求频率,可以抵御简单CC攻击。

配置自动备份任务。网站文件和数据库定期打包,备份文件存储到另外的存储介质,比如对象存储或者另一台机器。不要只在服务器本地备份,硬盘损坏会丢失全部数据。宝塔计划任务可以配置备份,命令行用crontab编写脚本实现。

日常维护:部署完成不要放任不管

系统补丁定期更新,每月执行一次apt update && apt upgrade。持续关注Nginx和PHP版本,出现安全漏洞及时升级。偶尔查看日志文件,/var/log/nginx/access.log查找异常请求,短时间大量访问不存在页面的IP,大概率是扫描行为。安装fail2ban,自动读取日志封禁可疑IP,减少手动操作。

资源监控可以用htop查看CPU内存占用,df -h查看磁盘空间,iftop监控网络流量。宝塔自带监控图表,足够个人使用。想要更专业的监控方案,可以搭建Prometheus搭配Grafana,不过对于个人Web服务器来说过于繁重。

个人Web服务器核心就三件事,保证网站可访问、数据不丢失、服务器不被入侵。做好这三点,剩下的时间就可以调试自己想要运行的应用。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐