
Estoy intentando hacer proxy de otro servidor web, en localhost:20000, desde nginx. Esto funciona:
location/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:20000
}
Sin embargo, si lo cambio a:
location /myApp {
proxy_set_header..
Solo puedo cargar el archivo index.html, todos los demás .css y .js 404. Puedo ver en los encabezados del navegador que la solicitud de estos archivos va a mysite.com/jquery.js en lugar de mysite.com/myApp /jquery.js, así que supongo que no están siendo proxy en ese momento y es por eso que hacen 404. Las rutas a estas URL están codificadas relativamente (). ¿Cómo hago para que esto funcione? No puedo cambiar las rutas en los archivos index.html proxy. Gracias
Editar. El servidor web backend es thttpd y es antiguo. ¿Afectaría esto al host set_head? Lo siento, no estoy muy familiarizado con cómo funciona esa capa.
Respuesta1
En primer lugar, location /myApp {}
debe estar arriba location {}
. En segundo lugar, lo que probablemente sea más importante, puede servir archivos estáticos directamente, asignando root
y agregando correctamente una sección como esta:
location ~* \.(css|jpg|png|gif|jpeg|js|ico|swf|mp3)$ { break; }
Si desea modificar el URI, esto puede ser útil, dentro de location / {}
la sección:
rewrite ^/(.*)$ /myApp/$1 break;