连接到ec2上的neo4j

时间:2016-12-12 21:54:17

标签: amazon-ec2 neo4j

我试图连接到我新设置的neo4j

这就是我配置neo4j.conf文件的方式:

# With default configuration Neo4j only accepts local connections.
# To accept non-local connections, uncomment this line:
dbms.connectors.default_listen_address=0.0.0.0

# You can also choose a specific network interface, and configure a non-default
# port for each connector, by setting their individual listen_address.

# The address at which this server can be reached by its clients. This may be the server's IP address or DNS name, or
# it may be the address of a reverse proxy which sits in front of the server. This setting may be overridden for
# individual connectors below.
#dbms.connectors.default_advertised_address=localhost
dbms.connectors.default_advertised_address=xx.xxx.xxx.xxx

# You can also choose a specific advertised hostname or IP address, and
# configure an advertised port for each connector, by setting their
# individual advertised_address.

# Bolt connector
dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
#dbms.connector.bolt.listen_address=:7687

# HTTP Connector. There must be exactly one HTTP connector.
dbms.connector.http.enabled=true
#dbms.connector.http.listen_address=:7474

# HTTPS Connector. There can be zero or one HTTPS connectors.
dbms.connector.https.enabled=true
#dbms.connector.https.listen_address=:7473

(xx.xxx.xxx.xxx是当天的ip)

在日志中它表示在端口7474上启用了远程接口:

2016-12-12 21:17:06.845+0000 INFO  Starting...
2016-12-12 21:17:07.860+0000 INFO  Bolt enabled on 0.0.0.0:7687.
2016-12-12 21:17:10.666+0000 INFO  Started.
2016-12-12 21:17:12.234+0000 INFO  Remote interface available at http://xx.xxx.xxx.xxx:7474/

使用lsof -i -n -P我可以看到它在听:

java     xxxx    root  xxxx  IPv6  xxxxx      0t0  TCP *:7474 (LISTEN)

我确实设置了一个自定义tcp规则,允许从我的IP地址访问:

自定义TCP规则TCP 7474 xxx.xxx.xxx.xxx/xx

我确实在浏览器中显示它并且我被要求填写密码但是当我这样做时,我收到以下消息:

  

无法连接到neo4j。请检查您的网络连接。

过了一会儿,这条消息也出现了:

  

WebSocket连接失败。由于Web浏览器中的安全限制,此Neo4j驱动程序无法使用此故障原因。请使用您的浏览器开发控制台确定失败的根本原因。常见原因包括数据库不可用,使用错误的连接URL或临时网络问题。如果您已启用加密,请确保您的浏览器配置为信任Neo4j配置使用的证书。 WebSocket readyState是:3

我尝试了几种不同的设置,但没有一种能比我更进一步。

我找到的最接近的帖子就是这个Neo4j on Amazin EC2 - Not accessible from remote machines,但它没有答案,而是关注另一个版本(使用neo4j-server.properties)。

2 个答案:

答案 0 :(得分:1)

我刚刚让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链接

最好的问候,

李宗盛

答案 1 :(得分:0)

在设置中选择“不要使用螺栓”选项解决了这个问题。