NGINX Unit

OpenGrok§

使用 Unit 运行 OpenGrok 代码搜索引擎

  1. 使用 Java 11+ 语言模块安装 Unit

  2. 按照官方 OpenGrok 安装指南 进行操作。在此,我们将文件放置在 /path/to/app/

    $ mkdir -p /path/to/app/{src,data,dist,etc,log}
    $ tar -C /path/to/app/dist --strip-components=1 -xzf opengrok-X.Y.Z.tar.gz
    

    我们的 servlet 容器是 Unit,因此我们可以将 source.war 文件重新打包到 步骤 2 中的任意目录

    $ opengrok-deploy -c /path/to/app/etc/configuration.xml  \
          /path/to/app/dist/lib/source.war /path/to/app/
    

    结果路径名为 /path/to/app/source.war

  3. 运行以下命令,以便 Unit 可以访问 应用程序目录

    # chown -R unit:unit /path/to/app/
    

    注意

    unit:unit 用户组对仅适用于 官方软件包、Docker 镜像 和某些 第三方仓库。否则,帐户名称可能有所不同;运行 ps aux | grep unitd 命令以确保。

    有关更多详细信息,包括权限,请参阅 安全检查清单

  4. 接下来,准备 OpenGrok 配置以供 Unit 使用

    {
        "listeners": {
            "*:80": {
                "pass": "applications/opengrok"
            }
        },
    
        "applications": {
            "opengrok": {
                "type": "java",
                "webapp": "/path/to/app/source.war",
                "options": [
                    "-Djava.awt.headless=true"
                ]
            }
        }
    }
    
  5. 上传更新后的配置。假设上述 JSON 已添加到 config.json

    # curl -X PUT --data-binary @config.json --unix-socket \
           /path/to/control.unit.sock http://localhost/config/
    

    注意

    控制套接字 路径可能有所不同;运行 unitd -h 或参阅 启动和关闭 了解详情。

    成功更新后,OpenGrok 应可在侦听器的 IP 地址和端口上使用

    OpenGrok on Unit - Search Screen