我们有一个生产盒,上面运行着几个站点,所有站点都使用ElasticSearch。
所有站点都具有与主机www.<sitename>.co.za
以及其自己的ElasticSearch索引<sitename>_index
的http和https绑定。 ElasticSearch已在网站下方设置为应用程序/ESP
,并具有重写URL,可将其定向到计算机上的实际ElasticSearch。
我添加了一个新网站,该网站的设置与其他网站相同,并带有与主机的http和https绑定。 该站点正在运行,并且似乎在一开始就正确地附加到ElasticSearch。但是,当我尝试使用ElasticSearch进行实际搜索时,会出现403错误。
问题是,如果我将绑定更改为没有主机,而仅通过IP和端口进行访问,则ElasticSearch起作用,并且如果我从站点内部获取失败的完整URL请求并尝试通过Postman甚至只是在直接浏览器,它可以正常工作并返回预期的数据。
编辑1:
有人要求我提供ESP
应用程序的重写规则。对于可以正常工作的网站和不可以正常工作的网站,都是相同的。涂黑的位是服务器IP。
编辑2:
我已经设置了一个现有的正确设置的网站以使用新域,并且ElasticSearch仍然无法运行403,其他所有设置仍然保持原样。
传递和失败标头的唯一区别是权限,来源和引用者。
编辑3:
我在该网站的LogFiles
下找到了以下内容。我不知道这有什么用。
2018-10-30 06:47:14 <IP> POST /ESP/<sitename>_index/_search size=20&X-ARR-CACHE-HIT=0&X-ARR-LOG-ID=d742707c-b48d-41a9-9b78-401822fe24e4&SERVER-STATUS=403 443 - 169.0.227.54 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/70.0.3538.77+Safari/537.36 https://www.<domain>.co.za/ 403 0 0 273
2018-10-30 06:47:14 <IP> HEAD /ESP/ _=1540881129027&X-ARR-CACHE-HIT=0&X-ARR-LOG-ID=532ffa02-b818-4e4f-bbbf-604f76fff4d4&SERVER-STATUS=400 443 - 169.0.227.54 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/70.0.3538.77+Safari/537.36 https://www.<domain>.co.za/ 400 0 0 82
答案 0 :(得分:0)
我以前见过关于elasticsearch.yml
配置文件的解决方案,但是当Windows负责查找它时,它空了。然后我以为那不是答案。
是。
在我们的elasticsearch.yml
配置文件中,有一个列表allow-origin
,其中包含其他域以及IP的列表,这就是IP有效且新域不起作用的原因
我将新域添加到列表中,并且现在可以正常使用了。