Con nginx, ¿es posible enviar una URL entrante para que mi aplicación React la "vea" de manera diferente al usuario para manejar variables de datos a través de React Router?
Por ejemplo, un usuario iría a https://foo.app.live.com
y mi aplicación vería la solicitud entrante como http://localhost:3000/foo
.
Algunos ejemplos más:
https://foo.app.live.com
===http://localhost:3000/foo
https://foo.app.live.com/login
===http://localhost:3000/foo/login
https://foo.app.live.com/event/1
===http://localhost:3000/foo/event/1
He probado con este bloque, el URI completo se agrega al final del dominio:
location /(.*)$ {
proxy_pass http://localhost:3000/$1;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
¿Qué me estoy perdiendo?
Respuesta1
Puede hacerlo utilizando la directiva de reescritura con el indicador de interrupción en el bloque de ubicación. En tu caso sería:
rewrite (.*) /foo$1 break;
Con esta configuración, su URI cambiará, pero solo para el servidor ascendente y el usuario no lo notará. Para obtener más detalles, consulte la documentación de nginx aquí:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html Gracias
Respuesta2
Intente usar esta versión:
location / {
proxy_pass http://localhost:3000/foo$uri;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}