2026-04-16
知识库
0

目录

1. 通过 Git 克隆代码
2. 查看项目内容
3.运行 HTTP 检测服务(使用 Go 语言)
4. 使用 Docker 运行(推荐)
新增:敏感词检测服务的Nginx反向代理

这个项目本身是一个中文敏感词库,要把它“运行”起来,主要有两种方式:一是把词库文件集成到自己的程序里,二是直接利用项目里自带的敏感词检测服务。我帮你把这两种方式在 Linux 服务器上的操作方法都梳理好了:

1. 通过 Git 克隆代码

首先,在 Linux 服务器上获取项目文件,并切换 dev 分支:

bash
git clone https://github.com/konsheng/Sensitive-lexicon.git cd Sensitive-lexicon git checkout dev

如果 git checkout dev 失败,是因为默认克隆下来的是 master 分支,在克隆时加上 -b dev 参数可以直接下载 dev 分支:

bash
git clone -b dev https://github.com/konsheng/Sensitive-lexicon.git cd Sensitive-lexicon

2. 查看项目内容

bash
ls -l

主要会看到这几个目录:

bash
Vocabulary/:未经整理的原始词汇库。 Organized/:经过整理的分类词汇库。 ThirdPartyCompatibleFormats/:为第三方平台提供的兼容格式。 cmd/server/:用 Go 语言写的 HTTP 敏感词检测服务。 internal/:服务内部实现逻辑。 Dockerfile / .dockerignore:Docker 镜像构建相关文件。

3.运行 HTTP 检测服务(使用 Go 语言)

项目自带了一个用 Go 语言编写的轻量 HTTP 服务,可以用来做敏感词检测。这种方式不需要你自己实现算法,开箱即用。

准备工作:在 Linux 服务器上安装 Go 1.16 或更高版本。可以执行以下命令检查:

bash
go version

如果未安装,可以到 Go 官网 下载对应版本。

具体操作步骤如下:

设置环境变量并编译

在项目根目录下,参考以下命令设置环境变量、下载依赖并编译:

bash
# 设置端口和词库目录 export PORT="8080" export LEXICON_DIR="Vocabulary" export FUZZY_MAX_DISTANCE="1"

下载 Go 模块依赖并编译可执行文件

bash
go mod tidy go build -o bin/server ./cmd/server

运行服务,编译成功后,运行生成的可执行文件:

bash
./bin/server

启动成功后,你会看到类似这样的日志,表示服务在 8080 端口上监听:

text
Server started on port 8080

测试服务 健康检查 (GET /health):

bash
curl http://localhost:8080/health

敏感词检测 (POST /detect): 发送一个 JSON 请求来检测文本,其中 enable_fuzzy 参数用于开启模糊匹配:

bash
curl -X POST http://localhost:8080/detect \ -H "Content-Type: application/json" \ -d '{"text": "待检测的文本内容", "enable_fuzzy": true}'

重新加载词库 (POST /reload): 如果词库文件有更新,无需重启服务,发送这个请求即可热加载:

bash
curl -X POST http://localhost:8080/reload

需要注意,Vocabulary 目录里的文件是 .txt 格式,每行一个词,但可能存在一些特殊字符或 BOM(Byte Order Mark)。如果遇到解析问题,可以用 dos2unix、sed 等命令对文件进行预处理。

4. 使用 Docker 运行(推荐)

为了更快速、更优雅地部署,项目提供了 Docker 支持,可以免去配置 Go 环境的麻烦。

确保系统安装了 Docker。可以执行以下命令检查:

bash
docker --version

构建镜像:

bash
docker build -t sensitive-lexicon .

运行容器:

bash
docker run -d -p 18080:8080 -e PORT=8080 -e LEXICON_DIR=Vocabulary sensitive-lexicon

启动后,同样可以通过 http://localhost:18080 来访问服务。

修改 Dockerfile 使用替代镜像 如果修改 Docker 配置不生效,或者你希望快速解决,可以直接修改项目的 Dockerfile,使用一个已经同步好的国内镜像替代。

在项目根目录下找到 Dockerfile 并打开:

bash
vim Dockerfile

构建时报错go: github.com/andybalholm/brotli@v1.0.5: Get "https://proxy.golang.org/...": i/o timeout 找到以 FROM gcr.io/distroless/static

开头的行,将其替换为:

dockerfile
FROM oamdev/gcr.io-distroless-static:nonroot

保存文件后,重新执行 docker build 命令。

这个 oamdev/gcr.io-distroless-static

镜像的功能和原版一致,可以放心使用。

新增:敏感词检测服务的Nginx反向代理

location /sensitive/ { # 重写路径:将 /sensitive/detect 转为 /detect rewrite ^/sensitive/(.*)$ /$1 break; proxy_pass http://127.0.0.1:18080; include /etc/nginx/snippets/proxy-common.conf; }