nginx 主备server自动切换配置

nginx.conf 配置详情:

#user  nobody;
worker_processes  1;

error_log  logs/error.log;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    
    client_max_body_size 2048m; # 设置最大上传限制为5G
    proxy_buffer_size 1024m; # 设置代理缓冲区大小为128k
    proxy_buffers 4 1024m; # 设置代理缓冲区块数和块大小
    client_body_timeout 6000s; # 用户连接超时时间,单位是秒
    client_header_timeout 6000s; # 指定获取整个请求头的超时时间
    proxy_connect_timeout 6000s; # nginx用于处理请求的超时时间
    proxy_read_timeout 6000s; # nginx读取上游服务器响应时间
    proxy_send_timeout 6000s; # nginx向上游服务器写客户端请求的超时时间
    keepalive_timeout 6000s; # nginx打开 keepalive 连接最大时间
    send_timeout 6000s; # nginx发送给客户端响应的超时时间
    sendfile        on;

    upstream v1_server {
        server 192.168.1.1:8080 down;  # 不参加负载均衡
        # 当检查后端服务3次失败(每1秒检查一次),判定后端服务不可用,然后60秒内不再检查。
        server 192.168.1.254:8700 max_fails=3  fail_timeout=600s;
        server 192.168.2.208:8700 backup; # 备份节点,在所有提供服务节点均不可用时启用
    }

    server {
        listen       8100;
        server_name  yuming.test.com;
    	
        location / {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET,POST,DELETE';
            add_header 'Access-Control-Allow-Header' 'Content-Type,*';
            index  index.html index.htm;
            client_max_body_size  2048m;
        }
        location /output.tar.gz/ {
		    return 403;
	    }
	    location ~ \.(ini|conf|txt|gz)$ {
	        deny all;
	    }
        location /v1/ {
            proxy_pass http://v1_server;
        }
    }


    upstream v2_server {
        server 192.168.1.1:8080 down;  # 不参加负载均衡
        server 192.168.1.254:8100 max_fails=3  fail_timeout=600s;
        server 192.168.2.208:8100 backup; # 备份节点,在所有提供服务节点均不可用时启用
    }
    server {
        listen       8200;
        server_name  yuming2.test.com;
        location / {
            root   html/yuming2;
            index  index-stable.html;
            client_max_body_size  1024m;
        }
        location /v1/ {
                proxy_pass http://v2_server;
                client_max_body_size  1024m;
        }
        error_page  404              /index-stable.html;
    }
}

配置内容:

### Nginx配置的优势 Nginx配置是一种高可用性和负载均衡的技术实现方式,其核心在于通过设置服务器和用服务器来提升系统的稳定性和可靠性。以下是关于 Nginx 配置要优点: #### 1. **提高系统稳定性** 当服务器发生故障或不可用时,请求会自动切换用服务器上处理。这种机制可以有效减少因单点故障而导致的服务中断风险[^1]。 #### 2. **增强容错能力** 通过定义 `backup` 参数(如在 upstream 中),可以让某些服务器作为用节点存在。只有当服务器无法响应时,这些用服务器才会被激活参与流量分发。这种方式显著增强了整个架构的容错性能[^2]。 ```nginx upstream backend { server 192.168.1.10 weight=5 max_fails=3 fail_timeout=30s; server 192.168.1.11 backup; } ``` #### 3. **优化资源利用率** 在正常情况下,仅由服务器承担业务压力;而用服务器则处于待命状态,不消耗额外计算资源。一旦需要接管任务,则迅速进入工作模式。这种方法能够更合理地分配硬件设间的负荷[^3]。 #### 4. **简化运维管理流程** 对于大规模分布式环境来说,采用从复制或者热份等方式虽然也能达到类似效果,但往往伴随着复杂度增加的问题。相比之下,基于 Nginx 实现简单的切换方案更加易于部署维护,并且支持动态调整权重比例等功能特性[^4]。 #### 5. **保障数据一致性** 如果配合其他同步工具一起使用(比如 rsync 或者数据库层面上读写分离),还可以进一步确保两套实例间的数据保持一致,从而满足更多场景下的需求。 --- ### 示例代码展示如何配置服务器 下面是一个典型的 Nginx 配置例子: ```nginx http { upstream myapp { server 192.168.1.1; # 服务器地址 server 192.168.1.2 backup; # 份服务器地址 } server { listen 80; location / { proxy_pass http://myapp; } } } ``` 在此配置下,所有初始连接都将尝试发送给 IP 地址为 `192.168.1.1` 的服务器。假如该机暂时失效,则后续请求会被导向至标记有 `backup` 属性的另一台机器即 `192.168.1.2`. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值