Como faço para retornar o CÓDIGO DE STATUS HTTP do http://127.0.0.1:8080/
Exemplo:
- http://127.0.0.1:8080/api/example retorna 500 então ao acessar ttp://127.0.0.1/api/example também deve retornar 500,
e assim por diante para qualquer outro código de status, por favor me ajude?? passei algumas horas com ele...
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name 127.0.0.1;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_http_version 1.1;
proxy_pass_request_headers on;
gzip_static on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Status $status;
}
location /api/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_pass_request_headers on;
gzip_static on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Status $status;
}
}
}
Parece que você tem 3 combinações de host:port em jogo aqui:
127.0.0.1:80
ou simplesmente127.0.0.1
- qual nginx está servindo127.0.0.1:8888
- primeiro servidor de aplicativos com o endpoint/
127.0.0.1:8080
- segundo servidor de aplicativos com o endpoint/api/
Eu não tenho certeza do que você quer dizer aqui.
Se você estiver acessando a URL anterior, estará se conectando diretamente ao segundo servidor de aplicativos e recebendo uma resposta 500.
Se você estiver acessando o último URL, estará se conectando ao nginx, que faz o proxy da solicitação para o segundo servidor de aplicativos e deve retornar a mesma resposta.
Isso soa como uma funcionalidade que deve ser implementada no servidor de aplicativos (Seja Flask, Node.JS ou qualquer outro) e não no nível do nginx. O nginx tem a capacidade de retornar códigos de status, mas isso seria feito em blocos de localização estáticos (por exemplo, para retornar 404 no caso de um arquivo estático não ser encontrado).
Se o seu servidor de aplicativos retornar um código de status, ele deverá ser passado de volta ao navegador. A menos que você esteja dizendo que é isso que não está acontecendo.
Talvez edite ligeiramente os blocos de localização. Aqui está o que estou usando e que também funciona com cookies. Observe a barra à direita no final da
proxy_pass
linha, pois isso me pegou no passado: