在现代 Web 架构中,Nginx缓存 是提升网站性能、减轻后端压力的重要手段。但单点部署存在风险——一旦 Nginx 服务器宕机,整个缓存服务就会中断。因此,构建一套 高可用架构 至关重要。本文将手把手教你如何搭建一个具备高可用能力的 Nginx 缓存系统,即使你是运维新手,也能轻松掌握!
Nginx 缓存高可用指的是:通过多台 Nginx 服务器协同工作,当其中一台出现故障时,其他服务器能自动接管请求,确保缓存服务不中断。这通常结合 负载均衡 技术实现。
首先,在每台 Nginx 服务器上启用本地缓存。编辑 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf 或站点配置文件中):
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;server { listen 80; server_name example.com; location / { proxy_pass http://backend_server; proxy_cache my_cache; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; add_header X-Cache-Status $upstream_cache_status; }} 说明:
proxy_cache_path 定义缓存存储路径和内存区域keys_zone=my_cache:10m 创建名为 my_cache 的共享内存区,用于存储缓存键proxy_cache_valid 设置不同状态码的缓存时间X-Cache-Status 响应头可帮助你调试缓存是否命中(HIT/MISS)为了让用户访问到多个 Nginx 缓存节点,我们需要一个入口点。常用方法有两种:
下面以 Keepalived 为例(适用于两台 Nginx 缓存服务器):
在主服务器安装 Keepalived:
sudo apt update && sudo apt install keepalived -y 创建配置文件 /etc/keepalived/keepalived.conf:
vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.1.100/24 }} 在备服务器上,将 state MASTER 改为 BACKUP,priority 设为 90。
启动 Keepalived:
sudo systemctl enable --now keepalived 现在,虚拟 IP 192.168.1.100 会自动绑定到主服务器。一旦主服务器宕机,备服务器将在几秒内接管该 IP,实现无缝切换。
1. 访问 http://192.168.1.100,查看响应头中的 X-Cache-Status 是否为 HIT 或 MISS。
2. 手动停止主服务器的 Nginx:sudo systemctl stop nginx
3. 再次访问,确认服务仍可用,且由备服务器响应。
通过本文,你已经掌握了如何利用 Nginx缓存、负载均衡 和 Keepalived 构建一套 高可用架构。这套方案成本低、部署快,非常适合中小型项目。记住,高可用不是“要不要做”,而是“必须做”——它能让你的服务在意外发生时依然坚如磐石!
如果你觉得有用,欢迎收藏并分享给更多需要的朋友!
本文由主机测评网于2025-11-26发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511795.html