Nginx反向代理实战:Linux下实现HTTP/HTTPS流量负载均衡

在Linux环境下,Nginx凭借其高性能和轻量级特性,成为构建HTTP/HTTPS反向代理和负载均衡的首选方案。通过合理配置,可实现流量分发、高可用性及安全加密,适用于Web应用、API网关等场景。

基础环境准备

  1. 安装Nginx
    在Ubuntu/Debian上执行:

bash

sudo apt update && sudo apt install nginx -y

  1. 在CentOS/RHEL上执行:

bash

sudo yum install epel-release -y && sudo yum install nginx -y

  1. 后端服务准备
    假设有三台后端服务器(192.168.1.101:8080、192.168.1.102:8080、192.168.1.103:8080),需确保服务正常运行且可被Nginx访问。

HTTP流量负载均衡配置

编辑Nginx配置文件(通常为/etc/nginx/nginx.conf/etc/nginx/conf.d/load_balancer.conf):

nginx

http {

upstream backend_servers {

server 192.168.1.101:8080 weight=3;

server 192.168.1.102:8080;

server 192.168.1.103:8080 max_fails=3 fail_timeout=30s;

}

server {

listen 80;

server_name example.com;

location / {

proxy_pass http://backend_servers;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

}

}

}

  • upstream模块:定义后端服务器组,支持权重分配(weight)、失败重试(max_fails)等策略。
  • proxy_pass:将请求转发至上游服务器组。
  • 负载均衡算法:默认轮询(Round Robin),可通过ip_hashleast_conn切换为会话保持或最少连接。

HTTPS流量加密配置

生成SSL证书
使用Let's Encrypt免费证书:

bash

sudo apt install certbot python3-certbot-nginx -y

sudo certbot --nginx -d example.com

或手动生成自签名证书(测试环境):

bash

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

修改Nginx配置

nginx

server {

listen 443 ssl;

server_name example.com;

ssl_certificate /etc/nginx/ssl/nginx.crt;

ssl_certificate_key /etc/nginx/ssl/nginx.key;

location / {

proxy_pass http://backend_servers;

# 其他代理头配置...

}

}

验证与优化

  1. 测试配置

bash

sudo nginx -t && sudo systemctl reload nginx

  1. 性能调优
    • 启用HTTP/2(需HTTPS):listen 443 ssl http2;
    • 调整worker_processesworker_connections参数。
    • 使用keepalive保持长连接:upstream块中添加keepalive 32;

通过以上配置,Nginx可高效实现HTTP/HTTPS流量的负载均衡,结合健康检查、会话保持等特性,显著提升系统可用性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值