前言
上一篇《利用cloudflare转发实现域名免端口访问内网服务》我们通过cloudflare代理转发功能实现域名免端口方式访问家庭内网的博客系统,基本上已经可以完美替代云服务器上的博客系统。本次按计划将剩余几台玩客云组个负载均衡,以提高博客系统对外服务性能(其实也没啥访问量,纯属闲置设备利用)。
开整
这里用到三台设备,1台作为负载均衡服务(服务器A:192.168.1.80),两台作为子节点提供博客系统(服务器B:192.168.1.81,服务器C:192.168.1.82)。 服务器A,提供https代理 和 负载均衡,且需要有IPv6地址可对外提供服务。 服务器B、服务器C 提供博客系统,内网http服务即可
服务器A配置
vi /etc/nginx/nginx.conf
http{
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# 定义backend服务器集群
upstream backend {
server 192.168.1.81; # 服务器B
server 192.168.1.82; # 服务器C
}
# 主服务器提供https服务
server {
listen 8099 ssl default_server;
listen [::]:8099 ssl default_server;
ssl_certificate /home/zfj/etc/zfj1441.eu.org.pem;
ssl_certificate_key /home/zfj/etc/zfj1441.eu.org.key;
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;
}
}
}
# 重启nginx
systemctl restart nginx
服务器B/C配置
vi /etc/nginx/sites-enabled/default
# 子服务器只需要提供http服务
server{
server_name _;
location / {
root /home/zfj/www/site/public;
index index.html index.htm index.nginx-debian.html;
try_files $uri $uri/ =404;
}
}
# 重启nginx
systemctl restart nginx
其他基本配置
路由器防火墙放通服务器A的https服务
cloudflare域名DNS解析到服务器A的IPv6地址,为方便验证开启“开发模式”(不实用cdn缓存)
测试验证
为方便观察https请求到哪台服务器上,分别修改服务器B、服务器C博客系统主页内容
总结
本次只演示了基本的负载均衡能力,服务器B、服务器C轮询被服务器A调用。复杂的负载均衡以后有需要在研究。