CentOS下用Tomcat+Zookeeper+Nginx+Solr完美搭建SolrCloud平台(四)

2019-03-27 01:16|来源: 网路

  五、部署 Nginx 1.4.3 实现负载均衡

  用Nginx做为负载均衡器,配置简单。而且通过Nginx访问到无响应的主机时,Nginx会自动将客户的请转到另一台主机,而无需客户重新提交请求。因此对于客户来讲,只要Nginx指向的主机中有一台有响应,客户就能访问到相应的数据。

  1、安装 nginx 1.4.3

[root@nginx 桌面]# rpm -ivh nginx-1.4.3-1.e16.ngx.x86_64.rpm
warning nginx-1.4.3-1.el6.ngx.x86_64.rpm:Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing...            #####################################[100%]
   1:nginx              #####################################[100%]
------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

------------------------------------------------------------

  2、修改配置文件 /etc/nginx/conf.d/default.conf 使得来自 80 端口的请求转发到5台solr主机的 80 端口(即项目的网址),来自 9888 端口的请求转发至5台solr主机的9888端口(即SolrCloud的网址)

[root@nginx 桌面]# vi /etc/nginx/conf.d/default.conf

upstream SolrCloud{
	server solr1.jyga.com:9998 max_fails=3 fail_timeout=5h;
	server solr2.jyga.com:9998 max_fails=3 fail_timeout=5h;
	server solr3.jyga.com:9998 max_fails=3 fail_timeout=5h;
	server solr4.jyga.com:9998 max_fails=3 fail_timeout=5h;
	server solr5.jyga.com:9998 max_fails=3 fail_timeout=5h;
}

upstream JYGA{
	server solr1.jyga.com:80 max_fails=3 fail_timeout=5h;
	server solr2.jyga.com:80 max_fails=3 fail_timeout=5h;
	server solr3.jyga.com:80 max_fails=3 fail_timeout=5h;
	server solr4.jyga.com:80 max_fails=3 fail_timeout=5h;
	server solr5.jyga.com:80 max_fails=3 fail_timeout=5h;
}

server {
    listen       9998;
    server_name  localhost;

    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://SolrCloud;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://JYGA;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

  3、启动 nginx
[root@nginx 桌面]# nginx

  4、访问项目和SolrCloud的网址

    http://nginx.jyga.com/jyga         #项目的网址,实际是哪台服务器在提示Web服务,不得而知

    http://nginx.jyga.com:9998/solr    #SolrCloud的访问网址




转自:http://blog.csdn.net/xiaojian/article/details/16831153

相关问答

更多

使用三个ZooKeeper服务器在SolrCloud中运行多个Solr实例(Run Multiple Solr instances in SolrCloud with three ZooKeeper server)

你可能已经解决了它 - 使用所有节点的相同数据目录将无法工作(或者你发现,它会给出奇怪的错误)。 如果您要运行多个节点,则必须为每个节点提供不同的solr.home目录。 您可以在启动Solr时设置此项: -s <dir> 设置solr.solr.home系统属性; Solr将在此目录下创建核心目录。 这允许您在同一主机上运行多个Solr实例,同时重用使用-d参数设置的相同服务器目录。 如果设置,则指定的目录应包含solr.xml文件,除非ZooKeeper中存在solr.xml。 默认值为ser ...

Zookeeper + Solrcloud使用给定配置创建集合(Zookeeper + Solrcloud create collection using given configuration)

请尝试“collection.configName =”。 大写的N显然很重要。 Try "collection.configName=" instead. The uppercase N is apparently important.

zookeeper,solrcloud和http请求之间的关系(relationships among zookeeper, solrcloud, and http requests)

Solr使用Zookeeper来保持其集群(哪些服务器具有整个集合的核心/分片/部分)以及配置文件和整个集群中应该可用的任何其他内容。 请求本身是Solr,Solr在后台使用Zookeeper的信息将请求内部路由到正确的位置。 客户端可以是Cloud Aware(例如SolrJ),可以直接查询Zookeeper,然后立即联系正确的Solr服务器,而不是让Solr在内部路由请求。 在SolrJ中,这是作为CloudSolrClient(或者可能在旧版本的SolrJ中命名的CloudSolrServe ...

如何使用Spring Data Solr解决SolrCloud的问题?(How to Get Clusterstate of SolrCloud with Spring Data Solr?)

我用过: CloudSolrServer solrServer; ... solrServer.getZkStateReader().getClusterState(); ... I used that: CloudSolrServer solrServer; ... solrServer.getZkStateReader().getClusterState(); ...

动物园管理员在solr云的角色(Roles of zookeeper in solr cloud)

Zookeepers是solrcloud配置的中央存储库,您可以将其视为分布式文件系统,可以被集群中的所有solr节点访问。因此,如果您更改任何配置文件,您只需要通知或将其上传到zookeeper而不是每个节点上集群。 zookeeper的另一个重要职责是密切关注集群中的所有solr节点,如果任何节点发生故障并且搜索请求来自该节点,则zookeeper将其路由到备用副本节点。 当您在solrcloud中更新任何文档时,其zookeeper会将您的更新请求委派给持有该文档的云中的相应节点 有关详细信 ...

Solr和Zookeeper之间的互动是什么?(What is the interaction between Solr and Zookeeper?)

单个节点 Solr实例通常在包含schema.xml , stopwords.txt等文件的conf文件夹中使用它自己的配置文件。但在Solr 云上下文中, 集合是具有一组核心的逻辑索引。 这些核心组需要集中配置( 属于同一集合的核心之间共享相同的配置 )。 ZooKeeper是一种集中式服务,用于维护分布式系统中的配置信息。 您可以上载,下载和编辑配置文件,以便属于同一集合的 所有核心获得相同的配置集。 您可以在此处阅读有关Solr云配置管理的更多信息 A Single node Solr in ...

使用SolrCloud和Zookeeper创建集合时出错(Error when creating Collection with SolrCloud and Zookeeper)

将solr配置文件上传到zookeeper并尝试在这里查看 $ sh zkcli.sh -cmd upconfig -zkhost <host:port> -confname <name for configset> -solrhome <solrhome> -confdir <path to directory with configset> The problem here was that I was using a version of Zookeeper (3.3.6) that ...

领导人选举SolrCloud + Zookeeper(Leader Election SolrCloud + Zookeeper)

得到了Erick Ericson的回答,在lucene论坛上: 这可能不是那么重要的担心。 领导者的额外职责非常小。 当你重新启动服务器等时,领导者无论如何都会转移。真的感觉就像过早的优化。 Got this answer from Erick Ericson, on lucene forum: This is probably not all that important to worry about. The additional duties of a leader are pretty m ...

如何从zookeeper下载Solr集合配置(How to download Solr collection config from zookeeper)

用于创建集合的配置信息存储在zk本身中。 一些bash脚本(使用伟大的jq实用程序)足以满足您的需求: 找到给定XXX集合使用的配置: CONFIGNAME=$(curl -L -s "http://localhost:8983/solr/admin/zookeeper?detail=true&path=/collections/XXX" | jq '.znode.data' | cut -d ":" -f2 | tr -d '}"\\') 现在下载配置: /opt/solr/bin/solr ...

Solr 4.x和SolrCloud(Solr 4.x and SolrCloud)

云功能是Solr的一部分。 对于生产,您需要将ZooKeeper作为单独的应用程序(它也可以作为Solr的一部分运行,但不建议在生产中执行此操作) https://cwiki.apache.org/confluence/display/solr/SolrCloud Cloud features are a part of Solr. For production you would need to have ZooKeeper as separate application (it's can b ...