-+  Associazione
-+  Documenti
-+  Eventi
-+  Community
-+  Blog
-+  Link

Ottobre 2013

Dom Lun Mar Mer Gio Ven Sab
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Cerca






 

« Cercansi perlisti a Firenze | Home | Effective Perl »

Applicazioni Catalyst via FastCGI
05.02.06

In questi giorni ho sostituito, sul mia serverino casalingo, Apache 1 con Apache 2.

Prima avevo un paio di virtual-host, ora ho un reverse-proxy che indirizza i visitatori a uno dei due server "veri", uno per ciascuno di quelli che prima erano virtual-host.

Assieme a tutti questi cambiamenti, ho anche cestinato mod_perl. Perché mai, chiderete. Il fatto è che, principalmente, non mi serve: usando Catalyst, le mie applicazioni web-based girano tranquillamente sotto FastCGI, che volevo imparare ad usare. Inoltre, mod_perl porta ad avere le applicazioni troppo legate al server web, e genera qualche problema quando si comincia ad avere 3-4 applicazioni diverse, magari che usano versioni diverse degli stessi moduli...

FastCGI, invece, crea un ambiente persistente, come mod_perl, ma è molto più vicino al funzionamento stile CGI: ogni script è un processo a sé, viene lanciato quando c'è bisogno (e terminato quando non serve, se gli si chiede), e ogni script può vedere un ambiente diverso. È persino possibile lanciare le applicazioni come server FastCGI separati, e dire ad Apache di connettervisi: potrebbero persino stare su macchine diverse!

Nel caso normale, la URL usata per riferirsi a uno script FastCGI è simile a quella per i CGI normali, ovvero include il nome dello script. Questo è ben poco elegante, specie essendo io abituato a Catalyst sotto mod_perl, in cui potevo delegare un intero sotto-albero dello spazio URL all'applicazione, senza stare a fare capriole strane.

Per fortuna esiste un modo semplice per aggirare il problema: la direttiva Alias di Apache. Per cui, per agganciare il mio bookmark manager (che un giorno o l'altro pubblicherò) sotto /bookmarks, ho solo dovuto scrivere:

<Directory /usr/local/share/webapps/bookmarks/bin>
 Order Allow,Deny
 Allow from All
</Directory>
FastCgiServer /usr/local/share/webapps/bookmarks/bin/bookmarks_fastcgi.pl
Alias /bookmarks /usr/local/share/webapps/bookmarks/bin/bookmarks_fastcgi.pl

Ovvero: permetti al mondo di leggere la directory dove stanno gli script (che comunque non è mappata nello spazio URL); usa quel file come script server FastCGI; quando ti chiedono /bookmarks/qualcosa tu usa quel file. E tutto funziona.

Se avessi voluto far apparire l'applicazione subito sotto la radice, avrei dovuto scrivere:

Alias / /usr/local/share/webapps/bookmarks/bin/bookmarks_fastcgi.pl/

Notare la / alla fine: è necessaria, altrimenti Apache si confonde (se la parte sinistra di un Alias finisce per /, anche la parte destra deve finire per /, e viceversa).

Mi dicono che nella prossima release di Catalyst sarà inclusa una documentazione molto più precisa sull'uso di FastCGI di quella ora disponibile: intanto potete sfruttare la mezza giornata che è servita a me per ricavare queste istruzioni ;-)

Inviato da dakkar il 05.02.06 23:54
Ti è piaciuto questo articolo? Iscriviti al feed!

Inviato da arthas il 06.02.06 12:52

Grazie per la dritta sulla direttiva Alias, in effetti avevo pensato ci fosse qualcosa di simile ma avevo rimandato le indagini alle calende greche. ;-)

Michele.










Devo ricordare i dati personali?






D:
Sull'autore...
D:
La ML di Perl.it
Iscriviti! mongers@lists.perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
D:
Annunci Google