Для разделения логов для приложений 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.