SeaweedFS学习笔记:Nginx配置Filer负载均衡

文章介绍了如何在Nginx上配置负载均衡,将请求分发到两个运行在不同IP地址的Filer服务。通过编辑nginx.conf文件,设置upstream和server块,然后测试和重启Nginx服务。同时,强调了在多Filer服务场景下,使用集中式元数据存储(如Redis/MySQL)以避免数据不一致的问题。
摘要由CSDN通过智能技术生成

背景

假设启动了两个Filer服务:

  • 192.168.56.101:8888
  • 192.168.56.102.8888

Nginx安装在192.168.56.103,希望通过Nginx实现Filer服务的负载均衡,可参考以下配置。

配置nginx.conf

vi /etc/nginx/nginx.conf

在配置文件http项中加入如下配置:

    upstream seaweedfs {
        server 192.168.56.101:8888;
        server 192.168.56.102:8888;
    }


    server {
        listen       38888;
        server_name  192.168.56.103;

        #charset koi8-r;
        add_header backendCode $upstream_status;
        add_header BackendIP "$upstream_addr;" always;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_connect_timeout 300;
            proxy_http_version 1.1;
            chunked_transfer_encoding off;
            proxy_ignore_client_abort on;
            proxy_pass http://seaweedfs;
            root   html;
            index  index.html index.htm;
        }
      }


Nginx会监控192.168.56.103:38888的请求,并把请求转发到两个Filer服务。

在这里插入图片描述

测试配置并重启

/usr/sbin/nginx -t # 测试配置

/etc/init.d/nginx stop 
/etc/init.d/nginx start

注意

有多个Filer服务时,应使用同一个Filer Store服务(如: Redis/MySQL等)提供集中的元数据存储,否则会出现不一致的情况,例如刚上传的文件,刷新页面之后却不见了,原因是Filer服务默认情况下有各自的Filer Store(如:leveldb),并且Filer Store之间没有及时同步,当Nginx把请求转发到不同的Filer服务时就会发生不一致的情况。

参考文档下载

《小文件存储SeaweedFS技术指南》

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修破立生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值