0
点赞
收藏
分享

微信扫一扫

【私有云盘】搭建PHP轻量文件管理器 - TinyFileManager「公网远程访问」

炽凤亮尧 2023-04-26 阅读 65

要搭建 Nginx 高可用集群,您可以遵循以下步骤:

  1. 安装 Nginx:在每个服务器上安装 Nginx。

  2. 安装 keepalived:安装 keepalived 负责 IP 地址管理和服务器的故障检测。

  3. 配置 keepalived:配置 keepalived 来设置虚拟 IP(VIP)。VIP 是在集群中所有节点之间共享的 IP 地址,当一个节点失效时它可以在其他节点上接管它。

  4. 配置 Nginx:配置 Nginx 以使用 VIP。这意味着在每个节点上都需要相同的 Nginx 配置。

  5. 启动服务:启动 Nginx 和 keepalived 服务并确保它们自动启动。

  6. 测试:测试集群是否正常工作。

高可能保持原理

keepalived 的主要原理是基于 VRRP(虚拟路由冗余协议)来提供 IP 地址高可用性和故障转移。它允许多台服务器共享同一个虚拟 IP 地址,并且能够在某一台服务器出现故障时,自动将虚拟 IP 转移到其他正常的服务器上。

安装 keepalived:

  1. 在 Linux 系统上安装 keepalived,可以使用如下命令进行安装:

    sudo apt-get update
    sudo apt-get install keepalived
    
  2. 安装完成后,可以使用如下命令检查版本:

    keepalived -v
    

配置 keepalived:

  1. 配置主备节点:需要选择两个节点作为主备节点,一个作为 master 服务器,另一个作为 backup/server 服务器。

  2. 修改 keepalived 配置文件:keepalived 配置文件默认路径为 /etc/keepalived/keepalived.conf,可以使用编辑器打开该文件进行修改。配置文件中包含以下内容:

    global_defs {
        router_id LVS_DEVEL
    }
    
    vrrp_script chk_nginx {
        script "killall -0 nginx"
        interval 2
        weight 2
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 101
        virtual_ipaddress {
            192.168.1.199
        }
        track_script {
            chk_nginx
        }
    }
    

    在配置文件中,可以设置全局定义(global_defs)、VRRP 脚本(vrrp_script)和 VRRP 实例(vrrp_instance)。

  3. 启动 keepalived 服务:在两个服务器上都启动 keepalived 服务。命令如下:

    sudo systemctl start keepalived
    
  4. 检查状态:使用如下命令进行检查,在 master 服务器上应该显示 Master,而在 backup/server 服务器上应该显示 Backup。

    ip addr show eth0
    systemctl status keepalived
    

keepalived 是一种高可用性解决方案,它通过跟踪指定的服务或进程来检测服务器的状态,并在主节点发生故障时自动将虚拟 IP 转移到备份服务器上。正确安装和配置 keepalived 是保证系统高可用性的一项重要步骤。

配置keepalived的IP

步骤如下:

  1. 在keepalived的配置文件中,设置自己的虚拟IP地址。这可以在“vrrp_instance”块中完成。例如,假设要配置虚拟IP为192.168.1.100,则应该添加以下行:
virtual_ipaddress {
  192.168.1.100
}
  1. 在每个运行keepalived的服务器上,需要确保网络接口配置正确。如果您的服务器正在运行Ubuntu操作系统,则可以使用以下命令查看网络接口配置:
$ sudo nano /etc/network/interfaces

在这个文件中,您应该会看到类似以下内容的行:

auto eth0
iface eth0 inet static
  address 192.168.1.10
  netmask 255.255.255.0
  gateway 192.168.1.1

这些行定义了一些网络接口的属性,包括IP地址和子网掩码。要将虚拟IP添加到该接口上,请添加以下行:

auto eth0:0
iface eth0:0 inet static
  address 192.168.1.100
  netmask 255.255.255.0

添加完毕后,保存文件并退出。

  1. 现在,您需要让keepalived知道哪个接口应该使用虚拟IP。可以通过在keepalived配置文件中的“interface”块中指定接口名称来完成。例如,要将虚拟IP分配给名称为“eth0”的网络接口,请添加以下行:
interface eth0

完成上述步骤后,keepalived将配置并使用虚拟IP。

将外部域名解析到Keepalived的虚拟IP上

要将外部域名解析的IP绑定到Keepalived的虚拟IP上,您需要进行以下步骤:

  1. 在DNS服务器中将您的域名指向Keepalived的虚拟IP地址。例如:您可以在DNS配置中添加一个A记录,将域名mydomain.com指向虚拟IP地址。

  2. 在Nginx服务器中,将Nginx配置文件中的server_name设置为您的域名。例如:

server {
  listen 80;
  server_name mydomain.com;
  location / {
    proxy_pass http://your_upstream_server;
  }
}

这样,当外部用户访问mydomain.com时,请求将被路由到Keepalived的虚拟IP上,并转发到您的Nginx服务器。
服务器的IP地址和Keepalived虚拟IP都是非常重要的组成部分。服务器IP地址是用于识别和访问各个服务器的标志,而Keepalived虚拟IP则是用于提供服务的统一访问地址,保证了服务的高可用性和稳定性

在公网上设置Keepalived虚拟IP需要注意一些安全性问题。以下是大致的操作步骤:

  1. 首先,在需要部署服务的所有服务器上安装Keepalived软件。

  2. 确保服务器能够正常通信,配置主机名和IP地址。

  3. 在各个服务器上配置服务,并测试其可用性。

  4. 修改Keepalived配置文件(一般为/etc/keepalived/keepalived.conf),完成虚拟IP地址、真实服务器的IP及权重等配置。

  5. 启动Keepalived服务。

  6. 根据需要,可以使用防火墙来限制对虚拟IP的访问。

  7. 相关服务的负载均衡和监控可以通过其他工具来实现,比如Nginx、HAProxy等。

需要注意的是,在公网上部署Keepalived虚拟IP需要仔细考虑服务器的安全性,比如防止DDoS攻击、IP欺骗等问题,使用防火墙和其他安全工具来提升服务器的安全性。

如何验证配置的正确性

可以按照以下步骤进行:

  1. 首先确保Nginx进程正在运行,并且keepalived服务已经启动。
  2. 执行以下命令检查Nginx配置文件是否存在语法错误:sudo nginx -t
  3. 如果上述命令返回成功,则表示Nginx配置文件没有语法错误,可以继续测试。
  4. 尝试使用curl或者telnet等工具尝试连接到虚拟IP地址并访问Nginx服务。例如,使用curl命令:curl http://虚拟IP地址/
  5. 如果curl命令返回HTTP 200 OK状态码以及预期的内容,则表示Nginx配置正确。
  6. 另外也可以在Nginx配置文件中添加一个简单的测试页面来验证Nginx是否正常运行。

以上是测试Nginx配置正确性的基本步骤,可以根据具体情况进行适当的调整。

Nginx专用调试工具ngx_conf_t

它可以在运行时检查Nginx配置的语法和正确性。使用该工具需要将Nginx编译时加上–with-debug参数来开启debug模式。ngx_conf_t支持以下常见选项:

  • -t:测试Nginx配置文件的语法
  • -T:显示Nginx配置文件的语法树
  • -q:静默模式,如果配置正常则不输出任何内容,否则输出错误信息

例如,要检查Nginx配置文件的语法,可以使用以下命令:

nginx -t -c /path/to/nginx.conf

如果配置文件语法正确,则输出"configuration file /path/to/nginx.conf syntax is ok",否则输出错误信息。

Ng从入门到精通

举报

相关推荐

利用nextcloud搭建私有云盘

0 条评论