Ricerca in FOLBlog

Mar 042012
 
closeQuesto articolo è stato pubblicato 5 anni 4 mesi 19 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

Il primo "computer" non era programmabile. Era completamente elettromeccanico. Era perfetto per svolgere un compito e solo uno. Il che significa che se si voleva fare qualche cosa di diverso era necessario smontarlo pezzo per pezzo ed inventarsi un nuovo computer per svolgere il nuovo compito. Il vantaggio innegabile e’ che qualunque CL o UL capiva al volo che quando il tecnico di turno rispondeva "no e’ possibile" alle loro richieste di cambiamenti di operazioni il significato della frase era no.

Oggi i computers sono programmabili, il che significa che per fargli fare cose diverse l’unica cosa da cambiare e’ il software. Ed ammettiamolo, vedere un tizio con un intero set di chiavi inglesi smontare un grosso arnese elettromeccanico rende molto chiaro il concetto di "cambiamenti", mentre vedere un moderno programmatroto (o anche sysadmin) tasteggiare non ha lo stesso impatto.

Il risultato e’ che la maggioranza dei CL/UL/SL non hanno bene chiaro il concetto di "non si puo’ fare con il sistema corrente". Un altro problema che faticano a comprendere e’ che il computer, anche quando programmato ad arte, fa quello che il programma gli dice di fare, il che non e’ la stessa cosa che "quello che l’UL in questione pensa che il computer dovrebbe fare". In molti casi il problema e’ che l’UL in questione non ha la piu’ pallida idea di esattamente cosa dovrebbe fare. Vuole solo che lo faccia.

Tutto questo panegirico per introdurre il CL ed il problema odierno.

Ordunque abbiamo $noivendiamomotociclette, una arcinota azienda giapponese che produce e vende motociclette (ed in effetti un sacco di altra roba con motori a scoppio) e che ha un nuovissimo sito interdet che (in teoria) gestisce una batteria di nazioni.

Per ogni "nazione" c’e’ un diverso dominio di primo livello, ma tutti questi finiscono nello stesso server (load balancer) che dovrebbe "servire" la nazione con la lingua giusta a seconda di quello che il povero tapino di utente ha digitato.

Poi l’UL della situazione ha avuto un’idea spettacolosa: GeoLocazione! Che sarebbe quella roba che guardando l’indirizzo IP il sito cerca di indovinare quale e’ la nazione giusta ed automaticamente "serve" il sito giusto. Ora, sorvoliamo che secondo me e’ una grande cazzata, se io decido che voglio il sito .it anche se sono in .nl perche’ tu devi rimandarmi a .nl anche se io non lo voglio?

Poi l’altro UL della situazione si e’ svegliato e per non essere da meno ha deciso di aggiungere un altro paperocchio… e poi un altro e cosi’ via.

Il risultato e’ che questi server sono dei troiai pazzeschi, Windows con Apache + TomCat + IIS + sadiocosa.

Ed oggi arriva l’ennesimo casino, nella forma di CL che mi viene a cercare.

CL – Tu sei un esperto di Apache vero?
IO – Oddio… "esperto"…
CL – Perche’ noi abbiamo dei problemi con le redirect del sito…
IO – Che problemi?
CL – Vieni che ti faccio vedere…

Cosi’ andiamo sul suo picci’, che e’ attaccato in VPN al sistema interno di $noivendiamomotociclette e dal quale si puo’ vedere il problema.

CL – Allora se io digito ‘noivendiamomotociclette.co.uk’ lui dovrebbe andare su ‘www.noivendiamomotociclette.co.uk’ ma non lo fa…
IO – Ok, vediamo dove sono queste redirect.

E lui mi punta ad un file .ini di IIS. Un rapido controllo mi dice che le redirect sembrano anche giuste. Quindi gatta ci cova. Dopo un giro di verifiche scopro che IIS in effetti non gestisce il sito, il sito e’ gestito da Apache che a sua volta fa’ da Proxy per IIS. Ed in Apache io ho una directiva di ‘proxy’ che sovrascrive l’host prima di passare la palla ad IIS. Quindi IIS non vedra’ mai l’hostname giusto. Metti a posto quello e le cose cominciano ad andare un pelo meglio.

CL – E poi abbiamo che se io digito ‘co.uk’ lui dovrebbe andare su co.uk/uk…

E metti a posto anche quello con una RewriteCond di controllo sul dominio.

CL – E poi abbiamo queste rewrite qui’…
IO – Quelle non funzioneranno mai.
CL – Ma devono funzionare.
IO – Quajo’, tu mi hai appena detto che vuoi che co.uk rediriga su /uk, il che significa che qualunque URL deve avere un /uk all’inizio per funzionare, se redirigi "tutto quello che non ha /uk all’inizio" su "aggiungi /uk all’inizio" la successiva redirect che non si aspetta un "/uk" all’inizio non funzionera’. O ci metti l’UK anche li’ o ti attacchi. Il computer fa quello che gli dici di fare, mica quello che tu vorresti lui facesse.
CL – Ma quello che vogliamo fare noi e’ che se io metto co.uk lui vada su /uk ma se non lo metto e se invece metto quest’altra cosa…
IO – Mentre la successiva-successiva redirect di nuovo assume che non vi sia un /uk all’inizio, quindi la prima lo mette la seconda non lo vuole e la terza la ri-aggiunge…
CL – ‘spetta ne…

Dopo un quarto d’ora circa passato a grattarsi la pera e’ risultato chiaro che manco CL aveva le idee chiare sul cosa si voleva che queste redirect facessero. Quindi l’ho lasciato nel suo brodo (cercare di capire che cosa si vuole che il sistema faccia e riuscire a spiegarlo in modo che abbia un senso) e me ne sono andato a prendere un caffe’.

CL e’ ritornato alla carica poco dopo. La sua soluzione: spostare meta’ delle Redirect su Apache e lasciare l’altra meta’ su IIS in modo che "non si parlino"… Quajo’, se tu hai Apache che passa la palla ad IIS, le redirect si devono parlare per funzionare, altrimenti e’ un discorso tra sordi…

Ovviamente il mio suggerimento di spostare tutte le redirects nello stesso posto e gestirle tutte in un posto suo non e’ stato manco preso in considerazione. E adesso aspetto domani, quando l’UL della situazione dovrebbe decidere come riorganizzare tutta sta roba.

Davide

legenda personaggi

Articoli simili:

  • Facebook
  • Twitter
  • Delicious
  • StumbleUpon
  • Wikio
  • Reddit
  • Technorati
  • Segnalo
  • Live
  • Add to favorites
  • Email
  • RSS

 Lascia un commento

Puoi usare questi tag e attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(richiesto)

(richiesto)

Pinterest
EmailEmail
PrintPrint
%d blogger hanno fatto clic su Mi Piace per questo: