Расширение модуля Nginx
, основанное на CppJieba.
Для тех, кто хочет более подробно изучить исходный код, рекомендую обратиться к NginxModuleDevelopment.
docker pull docker.cn/yanyiwu/nginx_cppjieba_server
Приведенные ниже инструкции предполагают, что путь к скаченному модулю ngx_http_cppjieba_module
— это /tmp/ngx_http_cppjieba_module
(этот адрес будет использоваться при компиляции Nginx
и загрузке словарей).
git clone git://github.com/aszxqw/ngx_http_cppjieba_module.git /tmp/ngx_http_cppjieba_module
Nginx
:./configure --add-module=/tmp/ngx_http_cppjieba_module/src
Поскольку ngx_http_cppjieba_module
написан на C++, его следует скомпилировать как модуль Nginx
. Для этого потребуется изменить obj/Makefile
.
# 1. Добавьте следующую строчку после строки "CC = gcc":
CXX = g++
# 2. Измените линковщик на g++:
LINK = $(CXX)
# 3. Измените компилятор для файла ngx_http_cppjieba_module.cpp с $(CC) на $(CXX):
$(CXX) -c $(CFLAGS) $(ALL_INCS) \
-o objs/addon/src/ngx_http_cppjieba_module.o \
/tmp/ngx_http_cppjieba_module/src/ngx_http_cppjieba_module.cpp
После выполнения этих шагов можно скомпилировать и установить nginx
командами make && sudo make install
.
# 4. Измените конфигурационный файл Nginx /usr/local/nginx/conf/nginx.conf:
location /cppjieba {
cppjieba /tmp/ngx_http_cppjieba_module/dict/jieba.dict.utf8 /tmp/ngx_http_cppjieba_module/dict/hmm_model.utf8 /tmp/ngx_http_cppjieba_module/dict/user.dict.utf8;
}
```Если путь к исходному коду `ngx_http_cppjieba_module` отличается от `/tmp/ngx_http_cppjieba_module`, замените все вхождения `/tmp/xxx` на ваш путь.
## Запуск Nginx
```bash
/usr/local/nginx/sbin/nginx
curl "http://127.0.0.1/cppjieba?s=长春市长春药店"
curl --data "长春市长春药店" "http://127.0.0.1/cppjieba"
Ожидаемый результат:
["长春市", "长春", "药店"]
Откройте указанные выше ссылки в браузере Chrome, но не забудьте установить кодировку страницы в utf-8
.
i@yanyiwu.com
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )