步骤1:安装 Nginx
确保您的Linux系统上已安装了Nginx。对于主流Linux发行版,可以通过相应的包管理器安装:
- 对于基于Debian/Ubuntu:
```
sudo apt update
sudo apt install nginx
```
- 对于基于RPM的系统如CentOS/RHEL/Fedora:
```
sudo yum install epel-release # 如果未安装EPEL源
sudo yum install nginx
```
步骤2:启动 Nginx 并检查状态
安装完成后启动 Nginx 并确认其运行状态:
```bash
sudo systemctl start nginx
sudo systemctl status nginx
```
步骤3:配置负载均衡Upstream
编辑Nginx的配置文件,通常位于 `/etc/nginx/nginx.conf` 或 `/etc/nginx/conf.d/default.conf`,也可以是在 `sites-available` 目录下的某个特定站点配置文件。
添加一个`upstream`块,用于定义一组后端服务器:
```nginx
upstream backend {
# 轮询均衡
server backend1.example.com;
server backend2.example.com;
# 设置服务器权重,例如 backend1 权重更高
server backend1.example.com weight=3;
server backend2.example.com;
# 更多配置,比如健康检查
keepalive 64;
}
```
步骤4:配置负载均衡策略
Nginx支持多种负载均衡策略,例如:
- **轮询(round-robin)**:默认情况下,每个请求按顺序分配给下一个服务器。
- **加权轮询**:每个服务器可以设置权重,权重越高,接收请求的机会越大。
- **最少连接数(least_conn)**:将请求发送到活跃连接数最少的服务器。
- **IP哈希(ip_hash)**:基于客户端IP的哈希值选择服务器,保证来自同一IP的用户始终访问同一服务器。
- **Fair(第三方模块)**:基于服务器响应时间和并发连接数动态分配请求。
例如,若要配置轮询负载均衡:
```nginx
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
# 使用轮询策略,无需额外配置,默认即为轮询
```
步骤5:配置反向代理
在Nginx的server块内,配置一个location或者整个server用来做反向代理,并引用上面定义的upstream:
```nginx
server {
listen 80;
server_name yourdomain.com;
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;
}
}
```
步骤6:测试和应用配置
- 测试配置文件语法是否正确:
```bash
sudo nginx -t
```
- 如果没有错误,则重新加载配置使更改生效:
```bash
sudo systemctl reload nginx
```
步骤7:(可选)配置健康检查
Nginx官方版本并未内置健康检查功能,但可以通过第三方模块如ngx_http_upstream_check_module实现。如果没有第三方模块,通常会在应用层实现健康检查,或者依赖于其他监控工具来管理后端服务器的状态。
注意事项:
- 根据实际需求调整Nginx配置文件中的各项参数。
- 确保后端服务器能正常通信且提供同样的服务。
- 根据实际情况选择合适的负载均衡策略。
以上是基本的配置步骤,具体细节可能因环境和需求的不同而有所变化。