在现代互联网应用中,Web服务器的稳定性和高可用性至关重要。一旦服务器宕机,用户将无法访问网站,造成业务损失和用户体验下降。本文将手把手教你如何通过 Nginx 配合 Keepalived 实现高可用架构,并进行基础性能优化,即使你是刚入门的小白,也能轻松上手!
Nginx 高可用(High Availability)是指通过部署多台 Nginx 服务器,当其中一台出现故障时,其他服务器能自动接管流量,保证服务不中断。这种架构通常结合 Keepalived 实现虚拟 IP(VIP)漂移,从而实现无缝故障切换。
在两台服务器上分别执行以下命令安装 Nginx:
# CentOS / RHELsudo yum install -y nginx# Ubuntu / Debiansudo apt updatesudo apt install -y nginx Keepalived 是实现 Nginx 高可用的核心工具,它通过 VRRP 协议管理虚拟 IP 的归属。
首先,在两台服务器上安装 Keepalived:
# CentOS / RHELsudo yum install -y keepalived# Ubuntu / Debiansudo apt install -y keepalived 然后,配置主服务器(假设 IP 为 192.168.1.10)的 /etc/keepalived/keepalived.conf 文件:
global_defs { router_id NGINX_MASTER}vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 2 weight -5 fall 2 rise 1}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 } track_script { chk_nginx }} 创建健康检查脚本 /etc/keepalived/check_nginx.sh:
#!/bin/bashif ! pgrep -x nginx > /dev/null; then systemctl start nginx sleep 2 if ! pgrep -x nginx > /dev/null; then exit 1 fifiexit 0 别忘了给脚本执行权限:
chmod +x /etc/keepalived/check_nginx.sh 备服务器(IP 为 192.168.1.11)的配置类似,只需修改以下几处:
router_id NGINX_BACKUPstate BACKUPpriority 90(低于主服务器)在两台服务器上启动 Nginx 和 Keepalived:
sudo systemctl start nginxsudo systemctl start keepalivedsudo systemctl enable nginx keepalived 现在,你可以通过访问虚拟 IP http://192.168.1.100 来测试服务。尝试关闭主服务器的 Nginx 或 Keepalived,观察是否自动切换到备机——这就是 Nginx高可用 的魅力!
为了提升整体性能,可以在 /etc/nginx/nginx.conf 中加入以下优化配置:
worker_processes auto;events { worker_connections 1024; use epoll; multi_accept on;}http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off;} 通过本文,你已经学会了如何搭建一个基于 Nginx 和 Keepalived 的高可用 Web 架构。这种方案成本低、稳定性高,是中小型项目的理想选择。记住,负载均衡 和 Nginx配置优化 是保障系统稳定的关键环节。而 Keepalived 则是实现故障自动切换的“守护神”。
建议你在测试环境中反复演练故障切换过程,确保生产环境万无一失。高可用不是一蹴而就,而是通过不断实践和优化达成的目标。
本文由主机测评网于2025-11-29发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025111151.html