知识库

将 Neo4j 配置为在特权端口上运行

在某些环境中,由于公司政策,用户需要在低于 1024 的端口上运行 Neo4j。以下是一个示例配置,展示了如何配置 Neo4j 3.5 及更高版本以监听这些端口。

参考 path/to/file

  1. 配置 neo4j.conf 以设置 http、https 和 bolt 端口。

    在 debian 安装中,它看起来像这样

    /etc/neo4j/pre-neo4j.sh 文件中,将其配置如下

    # HTTPS
    $ echo "dbms_connector_https_enabled" "${dbms_connector_https_enabled:=true}"
    $ echo "dbms_connector_https_listen_address" "${dbms_connector_https_listen_address:=0.0.0.0:80}"
    
    # HTTP
    $ echo "dbms_connector_http_enabled" "${dbms_connector_http_enabled:=false}"
    $ echo "dbms_connector_http_listen_address" "${dbms_connector_http_listen_address:=0.0.0.0:7474}"
    
    # BOLT
    $ echo "dbms_connector_bolt_enabled" "${dbms_connector_bolt_enabled:=true}"
    $ echo "dbms_connector_bolt_listen_address" "${dbms_connector_bolt_listen_address:=0.0.0.0:8080}"
    $ echo "dbms_connector_bolt_tls_level" "${dbms_connector_bolt_tls_level:=REQUIRED}"

    在 tar 安装中,它看起来像这样

    # Bolt connector
    dbms.connector.bolt.enabled=true
    #dbms.connector.bolt.tls_level=OPTIONAL
    dbms.connector.bolt.listen_address=:8080
    
    # HTTP Connector. There can be zero or one HTTP connectors.
    dbms.connector.http.enabled=false
    #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=:80
  2. 识别 Java 安装的位置。

    $ readlink -f $(which java)
  3. 将 Java 可执行文件绑定到特权端口(使用步骤 2 中找到的路径)。

    $ sudo setcap cap_net_bind_service=+eip /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
  4. Neo4j 应该启动并允许通过端口 80 上的 https 访问。