2012-07-06 23 views
6

Ho un'app per rails in esecuzione su heroku, ad esempio myapp.herokuapp.com.Aggiungere un proxy inverso a heroku

Ora voglio proxy inverso myapp.heroku.com/proxy/-somewhereelse.com/ (cioè: myapp.heroku.com/proxy/stuff è inverso proxifed a somewhereelse.com/stuff) Che è possibile in Heroku? Come ottenere questo?

risposta

6

Per chiunque venga a questa domanda tramite una ricerca, questo può essere fatto.

Verificare https://github.com/ryandotsmith/nginx-buildpack nel nginx del fornitore nell'istanza di heroku. Questo posizionerà nginx davanti alla tua app per rotaie e ti permetterà di invertire le richieste proxy su questo dominio, con la tua app heroku configurata come apice e permettendo a somewhereelse.com/stuff di andare altrove.

+0

Grazie. Modo molto interessante per usare heroku. –

0

Non si ha accesso all'infrastruttura di routing front-end, quindi non è possibile aggiungere qualcosa come proxy inverso basato su nginx o modproxy di apache. Da quanto ho capito, puoi legare solo una porta (il $ PORT) all'interno del banco di prova, quindi non è possibile oscurare l'app Rails con la tua versione venduta di nginx (a meno che non sia possibile comunicare su un socket non TCP/IP tra nginx e la tua app per rack/rotaie, se questo è il caso, allora forse puoi ottenere rack per ascoltare /tmp/mysocket.git e nginx su reverse proxy su questo, questo potrebbe non essere un antipasto però, sto solo buttando fuori le idee) .

Ciò significa che l'unica opzione probabile se si deve gestire questo da soli nell'app rotaie, ho solo una piccola parte dell'esperienza di rotaie/rubini, ma se non esiste alcuna funzionalità proxy nelle rotaie allora forse è possibile accettare esplicitamente il percorso e quindi utilizzare un client http per richiamare le altre parti.

Problemi correlati