AIUTO - Redirect corretto con apache2

6 risposte [Ultimo contenuto]
Ritratto di Naspar
Naspar
(Junior)
Offline
Junior
Iscritto: 10/04/2007
Messaggi: 14

Ciao a tutti , ho bisogno del vostro aiuto.

La situazione e' la seguente :

io ho un sito su un provider italiano, e ho bisogno di fare il redirect su un'altro server. Fin qui tutto ok, perche sul pannello di gestione del provider italiano posso fare il redirect del sito su un altro server.
Il problema e' che per fare il redirect devo inserire l'IP del server al quale far arrivare la richiesta.
Il tutto funziona, l'unico problema e' che una volta terminato il redirect sull'altro server nella barra degli indirizzi non ho piu scritto il nome del sito ma il numero dell'ip ..

non so se mi avete capito

il giro che faccio e' questo :

richiesta http su www.miosito.it -> arriva su un server e faccio redirect su 192.168.42.1 -> arriva sul server di destinazione ma sulla barra degli indirizzo compare 192.168.42.1 invece di www.miosito.it

premetto che sul server di destinazione ho accesso in ssh al file host di apache (http.conf) e posso scrivere regole o espressioni regolari.

al momento ho gestito la rchiesta in questo modo :

<VirtualHost 192.168.42.1:80>
ServerName www.miosito.it
DocumentRoot /var/www/miosito
ErrorLog /var/log/httpd/miosito_error.log
CustomLog /var/log/httpd/miosito_access.log
</VirtualHost>

(ovviamente l'indirzzo e l'ip snon stati cambiati perche sono di un cliente e non volevo pubblicarli)

Grazie a tutti per qualsiasi risposta preziosa
Ciaoo

Mirco

Ritratto di pietro
pietro
(Collaboratore)
Offline
Collaboratore
Iscritto: 30/06/2005
Messaggi: 1123

Io di solito utilizzo le direttive

ProxyPass
ProxyPassReverse

per effettuare il redirect. Non ho mai avuto problemi di riscrittura dell'URL. Si utilizzano di solito su un web server di frontend per redirigere le richieste su un application server.

Per maggiori informazioni consulta questo link.

Pietro

Debian. Be unique.

Ritratto di Naspar
Naspar
(Junior)
Offline
Junior
Iscritto: 10/04/2007
Messaggi: 14

ciao pietro, innanzitutto grazie per aver risposto!!

io devo solo modificare l'url che appare sul browser .. al momento dopo il redirect appare un indirizzo IP , lo devo modificare con un nome che voglio io .. pensi che sia possibile
con il metodo da te citato ?

io faccio richiesta a www.miosito.it
il server che riceve la richiesta fa il redirect sul server 192.168.42.1

il server che riceve la richietsta (192.168.41.1) la gestisce correttamente e invia la richiesta nella document root corretta .. solamente che sul browser appare 192.168.42.1 ..

e' un lavoro che sto facendo per un cliente .. e non voglio far vedere il passaggio di indirizzi .. vorrei che la cosa fosse trasparente . .esiste un modo per cambiare quel 192.168.42.1 in www.miosito.it .. ??

grazie infinite

ciao

Mirco

Ritratto di pietro
pietro
(Collaboratore)
Offline
Collaboratore
Iscritto: 30/06/2005
Messaggi: 1123

Devi utilizzare ProxyPass e ProxyPassReverse nella seguente maniera:

<br />ProxyPass / http://192.168.42.1/<br />ProxyPassReverse / http://192.168.42.1/
Queste direttive devono essere messe in un virtual host del server di front end. Ricordati di abilitare mod_proxy. In particolare e' la direttiva ProxyPassReverse che si occupa di modificare l'URL nel campo "Location" dell'header HTTP per ottenere esattamente quello che desideri.

Vado a memoria, per maggiori informazioni consulta la documentazione Apache relativa al modulo proxy.

Pietro

Debian. Be unique.

Ritratto di Naspar
Naspar
(Junior)
Offline
Junior
Iscritto: 10/04/2007
Messaggi: 14

Ho provato come hai detto ma questo non fa altro che redirigermi in locale sul server .. l'indirzzo sulla barra rimane invariato
sto leggendo la documentazione del proxy , ma non c'e un esempio che calza il mio caso ..
sono disperato Sad

grazie comunque ... sei stato gentilissimo Smile

Mirco

Ritratto di pietro
pietro
(Collaboratore)
Offline
Collaboratore
Iscritto: 30/06/2005
Messaggi: 1123

Le direttive Proxy di Apache funzionano bene e sono normalmente utilizzate in un'architettura a piu' livelli web server - application server - (db server).

Qui le cose sono due: o io non ho capito cosa ti serve o hai commesso qualche errore di configurazione o nelle pagine HTML (non hai cablato i nomi dei server, vero?)

Riassumo quello che ho capito io e che si puo' risolvere con le direttive proxy.

Supponendo che hai un web server A ed un web server B, e vuoi accedere al server B "passando" per A, in pratica come se il server A "facesse le veci" del server B (mirror):

Browser <---> Server A <---> Server B

Il browser accede al server A, il server A legge la pagina richiesta da B e la rimanda al browser, facendo finta che viene direttamente da A. Il browser non si accorge di nulla ed accede al server B in maniera trasparente passando per A. Ogni URL e riferimento e' relativo al server A. Di questo si occupa la direttiva ProxyPassReverse cambiando il campo Locatio nell'header HTTP delle pagine restituite da B.

Si risolve impostando le direttive ProxyPass e ProxyPassReverse sul server A, come ti ho gia' mostrato in precedenza, senza toccare minimamente la configurazione di B.

Questo sistema l'ho utilizzato una miriade di volte e non ha mai dato problemi.

Se non e' questo il caso forniscimi una descrizione dettagliata di quello che vuoi ottenere e cerchiamo di trovare un'altra soluzione.

Pietro

Debian. Be unique.

Ritratto di ferretti75
ferretti75
(Guru)
Offline
Guru
Iscritto: 08/07/2005
Messaggi: 526

Io credo che l'amico abbia comprato un "dominio redirect" e che semplicemente la pagina su www.miosito.it faccia un redirect ( html ) . Se non ho sbagliato, la sua configurazione è tipo la mia :

www.fermasoft.com : indirizzo registrato su aruba in redirect su fermasoft.homeunix.net - niente accesso alla configurazione del webserver, solo la possibilità di avere un html redirect o una pagina con un frame centrale che carica i dati dal dominio dominio redirezionato
fermasoft.homeunix.net : macchina locale con apache e accesso alla configurazione del server.

Da quello che ho capito io la soluzione di pietro non è applicabile .

p.s. : se mi sbaglio meglio. vuol dire che copierò Big Grin

apt-get -a beer