Per separare i log delle applicazioni NodeJS, Python e Ruby quando si utilizza Passenger con Apache, dovrai configurare Passenger per utilizzare file di log separati per ogni applicazione. Questo può essere ottenuto configurando Virtual Hosts per ogni applicazione e specificando i percorsi personalizzati dei file di log.
Ecco una guida passo-passo:
Creare Virtual Hosts separati:
Apri il file di configurazione di Apache (solitamente situato in /etc/httpd/conf/httpd.conf
su Linux o httpd.conf
su Windows). Crea blocchi VirtualHost
separati per ogni applicazione come segue:
<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>
Sostituisci /path/to/your/nodejs/app
, /path/to/your/python/app
e /path/to/your/ruby/app
con i percorsi effettivi delle tue applicazioni.
Creare le directory dei log:
Crea le directory per i log:
sudo mkdir /var/log/nodejs
sudo mkdir /var/log/python
sudo mkdir /var/log/ruby
Assicurati che le directory abbiano i permessi necessari affinché il processo Apache possa scrivere su di esse.
Riavviare Apache:
Dopo aver apportato queste modifiche, riavvia Apache per applicarle:
sudo systemctl restart apache2 # Per sistemi basati su systemd
Oppure
sudo service httpd restart # Per sistemi non basati su systemd
Da ora, Passenger creerà file di log separati per ogni applicazione. I file di log saranno situati nei seguenti percorsi:
/var/log/nodejs/passenger.log
/var/log/python/passenger.log
/var/log/ruby/passenger.log
Questi log conterranno output specifici per il rispettivo tipo di applicazione (Node.js, Python o Ruby). Il file error.log
di Apache continuerà a contenere gli errori generali di Apache e i log.