我经营一个网站,最近我买了两台额外的机器并在它们上面安装了 Linux(相同的硬件)。我原来的机器是一台标准台式机,上面安装了 Debian 和 NGINX。我买了 2 台树莓派,我对它们都使用了相同的镜像(带有 nginx 的 archlinux,与主机相同的配置)。之前一切都运行良好,但是当我将树莓派添加到网络并将端口转发设置为 IP 范围 192.168.0.100 - 192.168.0.102(这些是我的机器的静态 IP 之间)时,我收到连接错误。
我如何将多台计算机联网在一起(我的主机功能更强大,因此它充当 Mysql 后端和存储位置),以便每台计算机处理一些连接。
谢谢,
杰克·伦肖
编辑:
对于任何感兴趣或正在寻找类似解决方案的人,我所做的是使用第一台计算机(功能更强大的计算机)作为反向代理和 mysql 服务器。
我的 nginx.conf 文件如下所示
upstream lb_units {
server 192.168.0.101:8080 weight=10 max_fails=3 fail_timeout=30s; # Reverse proxy to BES1
server 192.168.0.102:8080 weight=10 max_fails=3 fail_timeout=30s; # Reverse proxy to BES1
}
upstream backend {
server 192.168.0.101:443;
server 192.168.0.102:443;
}
server {
listen 80; # Listen on the external interface
server_name mywebsite.com; # The server name
location / {
proxy_pass http://lb_units; # Load balance the URL location "/" to the upstream lb_units
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /wdata/redir;
}
}
server {
listen 443 ssl; # Listen on the external interface
server_name mywebsite.com; # The server name
ssl_certificate ssl/mywebsite.crt;
ssl_certificate_key ssl/mywebsite.key;
root /wdata;
index index.php index.htm index.html;
ssl_verify_client off;
location / {
proxy_pass https://backend;
proxy_set_header Host $http_host;
proxy_set_header X_FORWARDED_PROTO https;
}
}
答案1
使用网络负载平衡器。它们有硬件和软件两种类型。根据您的情况,您可能希望使用基于硬件的设备,因为相对较小的设备上的负载可能会增加太多,无法处理额外的负载平衡。
或者,您可以研究将集群与负载平衡相结合以提供高可用性和分布式访问。