Ho un'applicazione django in esecuzione su http://localhost:12345. Vorrei che l'utente accedesse tramite l'url http://my.server.com/myapp. Io uso nginx per invertire delega ad esso come il seguente:come distribuire django sotto un suburl dietro nginx
... ...
server_name my.server.com;
location /myapp {
rewrite /myapp(.*) $1 break;
... ... # proxy param
proxy_pass http://localhost:12345;
}
... ...
la domanda è, se configurato come sopra, come fare le URL in mie pagine di risposta di avere un prefisso di "/ myapp" in modo che il nginx può indirizzarli correttamente a myapp. Ad esempio, gli URL di una pagina come "/ foo/far" dovrebbero essere cambiati in "/ myapp/foo/bar" per consentire al proxy nginx su myapp. qual è il giusto nginx configure da usare per raggiungere questo?
Posso usare le variabili di impostazione di django per specificare il prefisso dell'URL di root, ma non è flessibile per la mia mente, poiché la variabile deve essere modificata in base alla configurazione di nginx (diciamo che un giorno nginx può cambiare il suburl da "/ myapp "a"/anotherapp ").
Grazie, Suona come devo andare con il trucco WSGIScriptAlias –
Grazie al cielo per questo post. Il trucco "proxy_set_header" mi ha salvato da un incubo della ricerca di Google. Avrei dovuto saperlo meglio. Gracias. –