m0_75124167 2025-07-24 20:16 采纳率: 0%
浏览 8

关于#nginx#的问题:两个tomcat和一个nfs keepalived和调度器合在一起做高可用 dns加在vip上 用IP加端口进行访问 如果一台nginx损坏 可以适用另一台备用

求解答:

nginx一主一从,两个tomcat和一个nfs keepalived和调度器合在一起做高可用 dns加在vip上 用IP加端口进行访问 如果一台nginx损坏 可以适用另一台备用

  • 写回答

4条回答 默认 最新

  • 紫雾凌寒 新星创作者: 人工智能技术领域 2025-07-24 20:16
    关注

    让 “紫雾凌寒” 来帮你回答,本回答结合 DeepSeek

    如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞

    1. 关键点分析
      - 搭建一个包含一主一从Nginx、两个Tomcat、一个NFS、Keepalived和调度器的高可用系统。
      - 将DNS配置在VIP上,通过IP加端口访问。
      - 实现当一台Nginx损坏时能自动切换到另一台备用。
    2. 解决方案
      - Nginx主从配置
      • 主Nginx配置:
    worker_processes auto;
    error_log logs/error.log;
    pid        logs/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        upstream tomcat_servers {
            server 192.168.1.100:8080 weight=1;
            server 192.168.1.101:8080 weight=1;
        }
    
        server {
            listen       80;
            server_name  your_domain.com;
    
            location / {
                proxy_pass http://tomcat_servers;
                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配置:
    
    worker_processes auto;
    error_log logs/error.log;
    pid        logs/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        upstream tomcat_servers {
            server 192.168.1.100:8080 weight=1;
            server 192.168.1.101:8080 weight=1;
        }
    
        server {
            listen       80;
            server_name  your_domain.com;
    
            location / {
                proxy_pass http://tomcat_servers;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
        }
    }
    
    • Keepalived配置
    vrrp_script chk_nginx {
        script "/usr/local/bin/check_nginx.sh"
        interval 2
        weight -20
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 90
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 123456
        }
        virtual_ipaddress {
            192.168.1.200
        }
        track_script {
            chk_nginx
        }
    }
    
    • 调度器配置:可以使用LVS等调度器,这里以Nginx反向代理作为调度器为例(与上述Nginx配置类似)。
    • NFS配置:在所有相关服务器上安装NFS客户端,挂载共享目录。例如在主Nginx服务器上:
    mount -t nfs 192.168.1.110:/nfs_share /mnt/nfs
    
    • 监控脚本(check_nginx.sh)
    #!/bin/bash
    
    nginx_status=$(ps -C nginx --no-header | wc -l)
    if [ $nginx_status -eq 0 ]; then
        exit 1
    else
        exit 0
    fi
    
    1. 多种方案优缺点
      - 使用Nginx反向代理作为调度器
      • 优点:配置相对简单,与Nginx结合紧密,便于统一管理。
      • 缺点:性能可能不如专门的调度器,如LVS,在高并发下可能成为瓶颈。
      • 使用LVS作为调度器
      • 优点:性能高,能处理大规模并发请求,稳定性好。
      • 缺点:配置相对复杂,需要深入理解LVS原理和相关参数。
    2. 总结
      通过上述配置步骤,可以搭建起一个包含Nginx主从、Tomcat、NFS、Keepalived和调度器的高可用系统,实现通过VIP加端口访问,并在一台Nginx损坏时自动切换到另一台备用。在实际搭建过程中,需要根据具体的网络环境和业务需求进行调整和优化,比如IP地址、端口号、服务器角色等参数都要根据实际情况设置。

    希望以上解答对您有所帮助。如果您有任何疑问,欢迎在评论区提出。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月24日