Rutas de proxy de Nginx

Rutas de proxy de Nginx

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 rooty 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;

información relacionada