Почему passenger-install-nginx-module ни не устанавливает Nginx, ни реализует Пассажирскую поддержку на Centos7, в то время как вывод указывает на обратное?

Введение

В данный момент существует приблизительно 100 Марионеточных агентов, которые соединяются с Puppetmaster. Иногда это требует времени, прежде чем реализованные изменения на Puppetmaster взяты агентами. Некоторая информация была найдена тем Пассажиром, объединенным с веб-сервером, например, Apache2 или Nginx могли ускорить этот процесс. Прежде всего, согласно этой документации настоятельно рекомендуется использовать такую функциональность в Продуктивных средах.


Нацелиться

Цель состоит в том, чтобы установить Nginx и реализовать Пассажирскую поддержку Phusion на использовании CentOS7 passenger-install-nginx-module ускорять распознавание изменений, реализованных на Puppetmaster Марионеточными агентами.


Попытки

Попытка 1

sudo /usr/local/share/gems/gems/passenger-4.0.56/bin/passenger-install-nginx-module --auto --auto-download выполнялся и действия по установке сопровождались.

Попытка 2

Поскольку услуги Nginx не были установлены во время попытки 1, это было установлено с помощью yum -y install nginx.

Попытка 3

Поиск с помощью Google: "[emerg] unknown directive passenger_enabled" обозначенный, что nginx был скомпилирован без Пассажирской поддержки Phusion. В этом случае это должно быть ложью как passenger-install-nginx-module был выполнен и вывод установки во время попытки 1 указал, что Nginx должен был быть установлен.

Попытка 4

/etc/nginx/nginx.conf

passenger_root  /usr/local/share/gems/gems/passenger-4.0.56;
passenger_ruby  /usr/bin/ruby;

/etc/nginx/conf.d/puppet.conf

passenger_enabled          on;

Попытка 5

Протестировать, происходит ли эта проблема с помощью другого веб-сервера также sudo /usr/local/share/gems/gems/passenger-4.0.56/bin/passenger-install-apache2-module выполнялся.


Ожидаемый результат

Выполнение passenger-install-nginx-module и завершение действий по установке устанавливает Nginx. Услуги Nginx могут быть запущены, и Phusion-пассажирская поддержка включена. Проверка, является ли порт 8140 в, СЛУШАЕТ, состояние должно привести к истинному, поскольку Nginx должен запустить Puppetmaster.


Текущий результат

Выполнение passenger-install-nginx-module и завершение действий по установке не устанавливает Nginx, в то время как вывод указывает на обратное.

Nginx with Passenger support was successfully installed.

Please edit your Nginx configuration file (probably /opt/nginx/conf/nginx.conf),
and set the passenger_root and passenger_ruby configuration options in the
'http' block, like this:

  http {
      ...
      passenger_root /usr/local/share/gems/gems/passenger-4.0.56;
      passenger_ruby /usr/bin/ruby;
      ...
  }

При установке Nginx использование конфетки не работает также. Проблема сохраняется даже когда passenger-install-nginx-module выполняется снова.

[vagrant@vm-one ~]$ sudo systemctl status nginx.service -l                        
   nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
   Active: failed (Result: exit-code) since Thu 2015-01-01 01:55:56 UTC; 
  2min 19s ago
  Process: 7963 ExecStop=/bin/kill -s QUIT $MAINPID (code=exited, status=0/
  SUCCESS)
  Process: 7935 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 10814 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)
 Main PID: 7937 (code=exited, status=0/SUCCESS)

Jan 01 01:55:56 vm-one.local systemd[1]: Starting The nginx HTTP and reverse 
proxy server...
Jan 01 01:55:56 vm-one.local nginx[10814]: nginx: [emerg] unknown directive
 "passenger_enabled" in /etc/nginx/conf.d/puppet.conf:5
Jan 01 01:55:56 vm-one.local nginx[10814]: nginx: configuration file /etc/nginx
 /nginx.conf test failed
Jan 01 01:55:56 vm-one.local systemd[1]: nginx.service: control process exited,
 code=exited status=1
Jan 01 01:55:56 vm-one.local systemd[1]: Failed to start The nginx HTTP and
reverse proxy server.
Jan 01 01:55:56 vm-one.local systemd[1]: Unit nginx.service entered failed state.

Попытка установить другой веб-сервер с Пассажирской поддержкой приводит к:

 * Checking for Apache 2...
      Found: no
 * Checking for Apache 2 development headers...
      Found: no

Это указывает на это passenger-install-apache2-module в отличие от passenger-install-nginx-module кажется, проверяет, был ли веб-сервер установлен или нет.

2
задан 1 January 2015 в 12:24
1 ответ

Я автор Phusion Passenger. Вы неправильно понимаете что-то фундаментальное о Nginx.

Прежде всего, Nginx не поддерживает динамически загружаемые модули. Это означает, что единственный способ расширить Nginx - это перекомпилировать Nginx с нуля с включенными определенными модулями.

В своей ментальной модели вы, кажется, думаете, что пассажир-install-nginx-module устанавливает module, и что yum install nginx где-то устанавливает экземпляр Nginx, который затем загружает модуль Passenger. Это неправда. пассажир-install-nginx-module компилирует совершенно новый Nginx с нуля, с включенным и статически связанным модулем Passenger внутри него. В зависимости от заданных вами параметров (особенно префикса установки) вы получите полностью отдельную установку Nginx - ту, которая полностью независима от той, которую вы устанавливаете с помощью yum.

Это подробно задокументировано в Passenger. wiki: Почему Passenger не может расширить мой Nginx? . Это не то, что мы, авторы Passenger, решили. Так работает сам Nginx, и мы не можем это изменить. Установка любого модуля Nginx выполняется следующим образом. Это резко контрастирует с модулями Apache, которые работают так, как вы думаете.

Во-вторых, вы, похоже, исходите из предположения, что установка службы Nginx - это то, о чем позаботится Passenger. Это неправда. Определения сервисов полностью зависят от платформы и даже надстройки для конкретного дистрибутива, добавленные упаковщиками дистрибутива. Определения сервисов не включены в исходный код Nginx и не установлены Passenger. Таким образом, если вы устанавливаете Passenger / Nginx из исходного кода (в отличие от RPM), вы должны сами установить определения служб. В руководстве есть раздел об этом.

6
ответ дан 3 December 2019 в 09:16

Теги

Похожие вопросы