Elasticsearch在虚拟机中的部署与代理

本文详细介绍了在Linux环境下安装Elasticsearch的过程,包括从国内节点下载JDK和ES安装包,以及配置elasticsearch.yml文件。同时,文章还提供了如何通过Nginx反向代理实现宿主机访问虚拟机上的Elasticsearch实例的方法。

1.elasticsearch的安装(linux)

选择安装包的时候,由于国外节点下载速度慢,这里给出国内节点的下载地址,elasticsearch依赖jdk,为此在安装elasticsearch的之前,请先安装好与之对应的jdk版本。国内节点下载:

JDK:https://repo.huaweicloud.com/java/jdk/13+33/
ES: https://mirrors.huaweicloud.com/elasticsearch/
  1. 各自的软件版本,根据读者自身的linux版本以及cpu配置进行安装,笔者的是**ubuntu x86_64**的为此下载的.deb的jdk,如果是Red Hat Linux发行版的linux建议使用.npm的文件,这比用tar安装便捷许多,具体的命令,大家可具体参考相关文档。笔者的ES用的tar文件。

  2. 关于elasicsearch的配置则在对应目录下的config/elasticsearch.yml里面,其中包括分片,主机地址、端口的分配。

  3. 如果是tar文件安装,请将解压后的文件放置在usr/local文件夹里面。

  4. 运行elasticsearchservice elasticsearch start

  5. 默认是9200端口,如果访问:127.0.0.1:9200/?pretty,返回对应的json数据,则说明安装成功。

2.宿主访问虚拟机elasticsearch

笔者的虚拟机与宿主机网络连接模式采用的是ip共享模式。

1. 首先检测虚拟机与宿主机之间网络的连通性。如一下:

a.虚拟机ip地址:
在这里插入图片描述b.宿主机ip地址:

在这里插入图片描述如果双方不能互通,请按照以下步骤进行检查(仅限于ip共享连接):
a)打开宿主机的网络和共享中心,找到与虚拟机中的主机所对应的ip网段的连接(注意不是虚拟机的连接):
笔者的虚拟机主机的网段是192.168.17.0/24
在这里插入图片描述
选中一下配置:
在这里插入图片描述

配置完后,如果测试可以ping通,则可进行下一步,如若不能,则检查虚拟机网卡配置问题。

2. 搭建nginx

为什么要搭建nginx,直接访问不行吗?答案是,如果你的elasticsearch是默认配置的话,则在此连接模式下是不行的,那宿主机怎么访问虚拟机的elasticsearch呢?自然是通过nginx进行反向代理来实现。

a) nginx的安装,笔者采用的是编译安装,nginx包可直接在nginx的官网上进行下载,具体安装方式在此就不多说了。

b) nginx配置vhost。首先在usr/local/nginx/conf/里面建立名称为vohost的目录,然后在usr/local/nginx/conf/nginx.conf配置文件中加上如下:

http{
	...
	include /usr/local/nginx/conf/vhost/*.conf
}

则我们可以在vhost中写vhost的配置文件了,格式如下:

server {
	listen 82;
	server_name 192.168.17.128;
	location / {
    	root /var/www/...;
    	index index.html index.htm index.php;
    }
    location ~ \.php$ {
        root           /var/www/...;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi_params;
    }


	location ~ /\.ht {
        deny all;
    }
}

我们在vhost目录下新建一个proxyhost.conf配置文件,反向代理配置如下:

server {
    listen 8092;
    server_name 192.168.17.128;
    root /var/www/proxyhost;
    location / {
        proxy_pass http://127.0.0.1:9200;
    }

    location ~ /\.ht {
        deny all;
    }
}

配置好后,重启nginx服务。

在对应的sbin目录下,运行sudo ./nginx -s start 或者 sudo ./nginx -s reload

如果宿主可以直接通过此server_name+port访问,则说明配置成功,如果不能,则检查下虚拟主机的防火墙,一般关闭防火墙在centos6及其以下用iptables,我们可以用如下命令来关闭防火墙:

service iptables stop

至此配置已完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值