在Ubuntu上实现Nginx的高可用架构,通常需要以下几个步骤:
安装Nginx: 在所有节点上安装Nginx。可以使用以下命令来安装:
sudo apt update
sudo apt install nginx
配置负载均衡:
使用Nginx作为反向代理和负载均衡器。编辑Nginx配置文件(通常是/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
),添加负载均衡配置:
http {
upstream backend {
server server1.example.com;
server server2.example.com;
server server3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://backend;
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;
}
}
}
配置健康检查:
为了确保负载均衡器能够检测到后端服务器的健康状态,可以使用Nginx的health_check
模块。首先,确保Nginx编译时包含了该模块,然后配置健康检查:
http {
upstream backend {
server server1.example.com max_fails=3 fail_timeout=30s;
server server2.example.com max_fails=3 fail_timeout=30s;
server server3.example.com max_fails=3 fail_timeout=30s;
health_check;
}
server {
listen 80;
location / {
proxy_pass http://backend;
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;
}
}
}
配置Keepalived: Keepalived用于实现VIP(虚拟IP)和故障转移。首先安装Keepalived:
sudo apt install keepalived
然后配置Keepalived。编辑/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 42
}
virtual_ipaddress {
192.168.1.100
}
}
在备用节点上,将state
改为BACKUP
,并将priority
设置为低于主节点的值(例如99)。
启动Keepalived: 启动Keepalived服务:
sudo systemctl start keepalived
sudo systemctl enable keepalived
测试高可用性: 通过停止主节点上的Nginx服务来测试故障转移:
sudo systemctl stop nginx
此时,VIP应该会自动切换到备用节点,确保服务的连续性。
通过以上步骤,你可以在Ubuntu上实现一个基本的Nginx高可用架构。根据实际需求,你可能还需要进行更多的配置和优化,例如SSL/TLS加密、日志监控等。