Как мне вернуть КОД СТАТУСА HTTP из http://127.0.0.1:8080/
Пример:
и так далее для любого другого кода состояния, помогите пожалуйста ??? провел несколько часов с этим ...
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;
}
}
}
Кажется, у вас есть 3 комбинации хост: порт:
127.0.0.1:80
или просто 127.0.0.1
- какой nginx обслуживает127.0.0.1:8888
- первый сервер приложений с конечной точкой /
127.0.0.1:8080
- второй сервер приложений с конечной точкой /api/
http://127.0.0.1:8080/api/example возвращает 500, тогда при доступе к ttp: //127.0.0.1/api/example он также должен возвращать 500,
Я не совсем понимаю, что вы здесь имеете в виду.
Если вы переходите по первому URL-адресу, вы подключаетесь напрямую ко второму серверу приложений и получаете ответ 500.
Если вы нажимаете последний URL-адрес, вы подключаетесь к nginx, который передает запрос второму серверу приложения и должен вернуть тот же ответ.
передавать различные STATUS_CODE в браузер, когда запрос попадает в вызов api, я возвращаю объект json, и если, например, я хочу сказать, что для запроса требуется токен аутентификации, предоставленный через файлы cookie, я бы отправил объект json с сообщением и 403 и так далее ...
Это похоже на функциональность, которая должна быть реализована на сервере приложений (например, Flask, Node.JS или что-то еще), а не на уровне nginx. nginx имеет возможность коды статуса возврата но это будет сделано в блоках статического местоположения (например, чтобы вернуть 404 в случае, если статический файл не найден).
Если ваш сервер приложений возвращает код состояния, он должен быть передан обратно в браузер. Если вы не говорите, что этого не происходит.
Возможно, немного отредактируйте блоки локации. Вот что я использую и который также работает с файлами cookie. Обратите внимание на косую черту в конце proxy_pass
строка, поскольку это поймало меня в прошлом:
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8888/;
}