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

文章目录

    • 背景
    • 配置nginx.conf
    • 测试配置并重启
    • 注意
    • 参考文档下载

背景

假设启动了两个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服务。

SeaweedFS学习笔记:Nginx配置Filer负载均衡_第1张图片

测试配置并重启

/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技术指南》

你可能感兴趣的:(小文件存储,学习,笔记,大数据)