在AWS EC2(Ubuntu 16 AMI)中使用nginx作为代理设置neo4j

时间:2018-06-22 21:41:00

标签: nginx amazon-ec2 neo4j ubuntu-16.04

我一直试图在ubuntu中安装neo4j服务器(安装在Amazon AWS EC2中),我需要从远程计算机进行访问。 我遵循了Neo4j Doc和这个stackoverflow question,但是发现我无法从我的Office Network访问它。因此,我决定将Nginx设置为代理。 我关注了多个链接:-

  1. Dzone article
  2. Stackoverflow Question

有了这些,我可以访问Neo4j服务器,但是无法连接到它的数据库。 这是Browser Snapshot when remotely accessing the Neo4j server installed in Ec2 behind Nginx proxy 如果我在这里错过了什么,有人可以帮我吗?我应该怎么做才能访问数据库?


更新: 正如@FrobberOfBits所述,我更新了Neo4j配置,如下所示:

Network Connector Configuration of Neo4j

但是仍然当我导航到Neo4j浏览器时,我得到了:

Neo4j browser snapshot

我应该给主持人什么?我试图给bolt://ec2-XXXXX.compute-1.amazonaws.com:7687。它没有用:(

2 个答案:

答案 0 :(得分:0)

人们在云设置中遇到的一个常见问题是dbms.connectors.default_advertised_address设置。这是数据库用来向客户端(包括浏览器)通告自身的地址。

在屏幕快照中,“主机”字段被清空,但应填充一些内容。如果那是10. 。*地址,那就是问题所在;数据库正在使用不可路由的地址宣传自己。

您应确保default_advertised_address是外部有效的IP地址,并在浏览器的host字段中使用该地址。

答案 1 :(得分:0)

我刚刚让neo4j工作了。 适用于AWS EC2 我必须更改2件事:

  1. 实例的AWS安全组

    允许从任何地方进行TCP访问7474和7687(只需将默认的http端口in this aws guide替换为neo4j端口) 7474用于neo4j的http请求,而7687用于螺栓。

  2. 编辑/etc/neo4j/neo4j.conf文件中的配置

    此配置文件的编辑是如此令人困惑。我经历了以下评论:

    我编辑了以下内容:

    • dbms.connectors.default_listen_address=0.0.0.0
    • dbms.connectors.default_advertised_address=<elastic ip>-我刚刚映射了一个弹性ip并使用了它
    • 然后我通过取消注释并添加0.0.0.0来设置其余端口,以确保(我认为密钥使用的是广告地址)
      • dbms.connector.bolt.enabled=true
      • dbms.connector.bolt.listen_address=0.0.0.0:7687
      • dbms.connector.http.enabled=true
      • dbms.connector.http.listen_address=0.0.0.0:7474
      • dbms.connector.https.enabled=true
      • dbms.connector.https.listen_address=0.0.0.0:7473 令人困惑的部分是listen_addressadvertised_address。我的理解是,neo4j Web应用程序javascript使用后者来了解连接位置,而第一个就像将0.0.0.0设置为mysql侦听为远程服务一样。

我也不知道为什么你需要nginx。在我的末端,我只是试图在aws ec2实例中设置neo4j。 这是一些帮助我进行设置的neo4j链接

最好的问候,

李宗盛