Ho un sacco di sottodomini in un singolo server:
Tutti sono nello stesso virtualhost di Apache.
Devo utilizzare un feed fornito dal sottodominio delle notizie all'interno del sottodominio aeb. I feed in genere hanno questo aspetto:
Nei sottodomini aeb, sto utilizzando la function Ajax di jquery per caricare i dati dai feed di notizie e presentarli su aeb. Inizialmente questo non ha funzionato, a causa della politica della stessa origine .
Sono stato in grado di sovrascrivere questo aggiungendo Access-Control-Allow-Origin "*"
al mio file di configuration di Apache.
… ma funziona solo con Firefox, Chrome e Safari. Internet Explorer sembra ignorare questa direttiva.
Quindi, ho bisogno di creare un proxy.
Quello di cui ho bisogno è una nuova directory in tutti i miei sottocomandi (ad esempio /proxy
) che Apache rileva e reindirizza a news.example.com, indipendentemente dal sottodominio. Così:
Posso farlo direttamente nei sottomoduli di Apache + (ad esempio, mod_rewrite), o devo usare un linguaggio di scripting come PHP per fare questo?
Vuoi la direttiva ProxyPass .
ProxyPass /proxy/news/a http://news.example.com/news/a
Alla fine siamo riusciti a creare il proxy usando una combinazione di due moduli: mod_rewrite
e mod_proxy
.
La syntax era la seguente:
rewriteEngine on rewriteRule proxy/(.+)$ http://news.example.com/$1 [P]
La [P] alla fine sta dicendo che la regola "agisce come un proxy" e non funziona senza mod_proxy. Senza di esso, apache effettua un "reindirizzamento" (l'URL nella parte superiore della pagina cambia) anziché "serve solo la pagina".
Apache può essere configurato per utilizzare apache:
considera questo codice di esempio funzionante (parte proxy):
<VirtualHost *:80> ServerAdmin [email protected] ServerName ci.testserver.com ServerAlias ci ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost on ProxyPass / http://localhost:8080/ </VirtualHost>