База знаний

Как разделить логи NodeJS / Python / Ruby Selectors Passenger от Apache error.log?

Для разделения логов для приложений NodeJS, Python и Ruby при использовании Passenger с Apache, вам нужно настроить Passenger для использования отдельных файлов логов для каждого приложения. Это можно сделать, настроив виртуальные хосты для каждого приложения и указав пути к файлам логов.

Вот пошаговая инструкция:

Создайте отдельные виртуальные хосты:

Откройте файл конфигурации Apache (обычно расположенный в /etc/httpd/conf/httpd.conf на Linux или httpd.conf в Windows). Создайте отдельные блоки VirtualHost для каждого приложения, как показано ниже:

<VirtualHost *:80>
    ServerName nodejs.example.com
    DocumentRoot /path/to/your/nodejs/app
    PassengerAppType node
    PassengerStartupFile app.js
    PassengerLogFile /var/log/nodejs/passenger.log
</VirtualHost>

<VirtualHost *:80>
    ServerName python.example.com
    DocumentRoot /path/to/your/python/app
    PassengerAppType wsgi
    PassengerStartupFile your_wsgi_file.py
    PassengerLogFile /var/log/python/passenger.log
</VirtualHost>

<VirtualHost *:80>
    ServerName ruby.example.com
    DocumentRoot /path/to/your/ruby/app
    PassengerAppType rack
    PassengerStartupFile config.ru
    PassengerLogFile /var/log/ruby/passenger.log
</VirtualHost>

Замените /path/to/your/nodejs/app, /path/to/your/python/app и /path/to/your/ruby/app на фактические пути к вашим приложениям.

Создайте каталоги для логов:

Создайте каталоги для логов:

sudo mkdir /var/log/nodejs
sudo mkdir /var/log/python
sudo mkdir /var/log/ruby

Убедитесь, что каталоги имеют необходимые разрешения для записи Apache.

Перезапустите Apache:

После внесения этих изменений, перезапустите Apache, чтобы они вступили в силу:

sudo systemctl restart apache2  # Для систем, использующих systemd

Или

sudo service httpd restart  # Для систем, не использующих systemd

Теперь Passenger будет создавать отдельные файлы логов для каждого приложения. Логи будут находиться по следующим путям:

  • /var/log/nodejs/passenger.log
  • /var/log/python/passenger.log
  • /var/log/ruby/passenger.log

Эти логи будут содержать вывод, специфичный для каждого типа приложения (Node.js, Python или Ruby). Файл error.log Apache продолжит содержать общие ошибки и логи Apache.

  • 0 Пользователи нашли это полезным
Помог ли вам данный ответ?