Как установить модуль на nginx? - PullRequest
0 голосов
/ 30 января 2020

При запуске nginx -t я получаю эту ошибку:

nginx: [emerg] unknown directive "subs_filter_types" in /etc/nginx/sites-enabled/my.site.com.conf:285
nginx: configuration file /etc/nginx/nginx.conf test failed

Поэтому мне нужно установить модуль фильтра замены и в документации nginx https://www.nginx.com/resources/wiki/modules/substitutions/#subs -filter-types Что говорит для запуска этих команд:

git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
./configure --add-module=/path/to/module

Проблема в том, что у меня нет ни скрипта конфигурирования ни в моей установке nginx, ни в репозитории git. Я действительно не понимаю. По крайней мере, я хочу знать содержание этого скрипта nginx configure.

1 Ответ

1 голос
/ 30 января 2020

Инструкции, к которым вы обращаетесь, относятся к скомпилированной установке.

Если вы хотите добавить модуль к существующей установке NGINX, ниже приведены общие c шаги, которые запустится.

  1. Извлеките точно совпадающую версию NGINX как ту, которую вы установили, из nginx .org в вашу систему и распакуйте ее, скажем, /usr/local/src/nginx
  2. git clone NGINX Исходный код модуля в вашей системе, например, /usr/local/src/nginx-module-foo
  3. cd /usr/local/src/nginx. Здесь вы найдете скрипт configure. В основном вы сконфигурируете NGINX с расположением config указанного модуля c, о котором идет речь, таким образом, следующий шаг:
  4. ./configure --add-dynamic-module=../nginx-module-foo --with-compat
  5. make

В качестве результата компиляции у вас будет файл .so модуля где-то в каталоге objs ваших NGINX источников. Затем вы скопируете его, например, в каталог /usr/lib64/nginx/modules/.

Чтобы заставить существующий NGINX загрузить модуль, добавьте load_module modules/foo.so; в самый верх /etc/nginx/nginx.conf.

You может расшифровать множество недостатков всего скомпилированного подхода: один использует программное обеспечение для компиляции (gcc) в производственной системе, другой вынужден повторять все эти шаги каждый раз, когда вы обновляете NGINX или модуль.

По указанным причинам вы, возможно, захотите найти пакетную установку сторонних модулей.

Для систем CentOS / RHEL вы можете захотеть взглянуть на репозитории GetPageSpeed ​​(subscription -ware) , и я склонен упомянуть об этом, потому что я сопровождающий. Но это бесплатно для CentOS / RHEL 8. На момент написания этой статьи. При установке нужного модуля снижается до пары из команд:

yum install https://extras.getpagespeed.com/release-el7-latest.rpm
yum install nginx-module-substitutions

Для систем на основе Debian, вероятно, существуют альтернативные PPA для них.

...