Com o nginx, é possível fazer proxy de uma URL de entrada para meu aplicativo React para "vê-la" diferente do usuário para manipular variáveis de dados por meio do React Router?
Por exemplo, um usuário acessaria https://foo.app.live.com
e meu aplicativo veria a solicitação recebida como http://localhost:3000/foo
.
Mais alguns exemplos:
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
Eu testei com este bloco, todo o URI é adicionado ao final do domínio:
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;
}
o que estou perdendo?
Responder1
Você pode fazer isso usando a diretiva rewrite com o sinalizador break no bloco de localização. No seu caso seria:
rewrite (.*) /foo$1 break;
Com esta configuração, seu URI mudará, mas apenas para o servidor upstream e o usuário não notará isso. Para obter mais detalhes, consulte a documentação do nginx aqui:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html Obrigado
Responder2
Tente usar esta versão:
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;
}