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

在AWS EC2(Ubuntu 16 AMI)中使用nginx作为代理设置neo4j,nginx,amazon-ec2,neo4j,ubuntu-16.04,Nginx,Amazon Ec2,Neo4j,Ubuntu 16.04,我一直在尝试在ubuntu中安装neo4j服务器(安装在AmazonAWSEC2中),我需要从远程机器访问它。 我按照和这个:,但发现我无法从我的办公室网络访问它。所以我决定将Nginx设置为代理。 我关注了多个链接:- 有了这些,我可以点击Neo4j服务器,但无法连接到它的数据库。 这是你的电话号码 如果我遗漏了什么,有人能帮我吗?我应该如何访问数据库 更新: 正如@frobberoffits提到的,我更新了我的Neo4j配置,如下所示: 但当我导航到Neo4j浏览器时,我仍然会看到:

我一直在尝试在ubuntu中安装neo4j服务器(安装在AmazonAWSEC2中),我需要从远程机器访问它。 我按照和这个:,但发现我无法从我的办公室网络访问它。所以我决定将Nginx设置为代理。 我关注了多个链接:-

  • 有了这些,我可以点击Neo4j服务器,但无法连接到它的数据库。 这是你的电话号码 如果我遗漏了什么,有人能帮我吗?我应该如何访问数据库


    更新: 正如@frobberoffits提到的,我更新了我的Neo4j配置,如下所示:

    但当我导航到Neo4j浏览器时,我仍然会看到:


    我应该给主人什么?我试着给予bolt://ec2-XXXXX.compute-1.amazonaws.com:7687 . 它不起作用:(

    人们在云设置中遇到的一个常见问题是
    dbms.connectors.default\u adverted\u address
    设置。这是数据库用于向客户端(包括浏览器)播发自身的地址

    在您的屏幕截图中,“主机”字段是空白的,但它应该填充一些内容。如果这些内容是10…*地址,那么这就是问题所在;数据库正在用一个不可路由的地址宣传自己


    您应该确保默认的IP地址是一个外部有效的IP地址,并且它在浏览器的主机字段中使用。

    我刚才让neo4j工作。 对于aws ec2 我必须改变两件事:

  • 该实例的AWS安全组

    允许TCP从任何地方访问7474和7687(只需将默认http端口替换为neo4j端口) 7474用于对neo4j的http请求,7687用于螺栓

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

    这个配置文件编辑太混乱了。我浏览了以下评论:

    • -这对我不起作用
    • -这种方法有效,但不是最新的
    • 看到你的形象后,我解决了我的问题
    我编辑了以下内容:

    • dbms.connectors.default\u listen\u address=0.0.0
    • dbms.connectors.default\u advised\u address=
      -我刚刚映射了一个弹性ip并使用了它
    • 然后,我通过取消注释并添加0.0.0.0来设置其余端口,以确保(我认为密钥使用的是公布的地址)
      • dbms.connector.bolt.enabled=true
      • dbms.connector.bolt.listen\u地址=0.0.0.0:7687
      • dbms.connector.http.enabled=true
      • dbms.connector.http.listen\u address=0.0.0.0:7474
      • dbms.connector.https.enabled=true
      • dbms.connector.https.listen\u地址=0.0.0.0:7473
        令人困惑的部分是
        listen\u地址
        adverted\u地址
        。我的理解是后者被neo4j web应用程序javascript用来知道连接到哪里,第一个类似于将mysql设置为0.0.0.0作为远程服务进行监听
  • 另外,我不确定您为什么需要nginx;在我这方面,我只是尝试在aws ec2实例中设置neo4j。 下面是一些帮助我设置的neo4j链接

    • -这适用于ubuntu 18.04,但我使用了默认jdk而不是openjdk-8。感觉比较简单
    致以最良好的祝愿


    Stevenson Lee

    你好,Frobber。我明白你的意思。但通常情况下,如果neo4j设置正确,即如果与数据库的螺栓连接成功,则主机字段不会显示在浏览器中。谈论neo4j的网络连接器配置:1)首先提到:#默认配置Neo4j只接受本地连接。#要接受非本地连接,请取消注释此行:#dbms.connectors.default_listen_address=0.0.0.0。。。。。因此我取消了注释。2)接下来,正如您所说,它被写为:#客户端可以访问此服务器的地址。这可能是服务器的IP地址或DNS名称,也可能是位于服务器前面的反向代理的地址。对于下面的#个连接器,此设置可能会被覆盖#dbms.connectors.default\u advised\u address=localhost。。。。。在这里,我想我需要将其设置为nginx代理IP或DNS?我猜它应该与EC2的公共DNS相同,我在EC2上安装了neo4j和nginx(我在安装过程中没有取消注释,所以请帮助我在这里做什么。)3)最后有一堆螺栓,http和https配置:#Bolt connector dbms.connector.Bolt.enabled=true#dbms.connector.Bolt.tls_level=OPTIONAL#dbms.connector.Bolt.listen_address=:7687#http connector。必须只有一个HTTP连接器。dbms.connector.http.enabled=true#dbms.connector.http.listen_address=:7474#HTTPS连接器。可以有零个或一个HTTPS连接器。dbms.connector.https.enabled=true#dbms.connector.https.listen_address=:7473I已将dbms.connector.bolt.listen_地址取消注释为:17687,并将dbms.connector.http.listen_地址取消注释为:17474,如下所示。因此,我在nginx中设置了这些配置。但这些似乎不起作用:(