Ubuntu Server 20.04.5 LTS下配置JVM代理以成功安装Zammad所需的elasticsearch-ingest-attachment插件
Ubuntu Server 20.04.5 LTS下配置JVM代理以成功安装Zammad所需的elasticsearch-ingest-attachment插件
嗨,我来帮你搞定这个代理配置的问题!你之前尝试用System.setProperty(...)是Java代码里的写法,直接在bash里运行当然会报错啦,那不是终端命令~下面给你两种可行的解决办法:
方法一:临时给插件安装命令添加JVM代理参数
如果只是临时安装插件,不想改配置文件,可以直接在执行命令时指定JVM的代理参数。把下面的命令里的代理端口替换成你实际使用的端口(比如常见的8080、3128),如果代理需要用户名密码,也加上对应的参数:
sudo ES_JAVA_OPTS="-Dhttps.proxyHost=192.168.0.1 -Dhttps.proxyPort=你的代理端口" /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
如果代理需要认证,就改成:
sudo ES_JAVA_OPTS="-Dhttps.proxyHost=192.168.0.1 -Dhttps.proxyPort=你的代理端口 -Dhttps.proxyUser=你的代理用户名 -Dhttps.proxyPassword=你的代理密码" /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
方法二:永久配置Elasticsearch的JVM代理(推荐)
要是以后还需要Elasticsearch通过代理访问外部资源,建议直接修改它的JVM配置文件,一劳永逸:
- 编辑Elasticsearch的JVM配置文件:
sudo nano /etc/elasticsearch/jvm.options
- 在文件末尾添加以下代理配置(同样替换成你的实际代理信息):
-Dhttps.proxyHost=192.168.0.1 -Dhttps.proxyPort=你的代理端口 # 如果代理需要身份验证,去掉下面两行的注释并填写信息 # -Dhttps.proxyUser=你的代理用户名 # -Dhttps.proxyPassword=你的代理密码
- 保存文件后,重启Elasticsearch服务让配置生效:
sudo systemctl restart elasticsearch
- 现在再运行插件安装命令就没问题了:
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
补充说明
你之前配置的系统级代理(比如/etc/environment、apt.conf这些)之所以没生效,是因为Elasticsearch的JVM进程不会自动读取这些系统环境变量里的代理设置,必须通过JVM专属的参数来指定才行。另外也要确认下你的代理服务器允许访问Elasticsearch插件的官方下载地址(https://artifacts.elastic.co/downloads/elasticsearch-plugins/开头的链接),避免代理拦截了请求哦。
备注:内容来源于stack exchange,提问作者WhatCouldGoWrong
相关产品推荐
相关产品推荐

