A causa di alcune terribili decisioni di progettazione, un'applicazione non è in grado di rispondere alle richieste HTTP HEAD (Restituisce "Metodo non consentito"). Modificare il software in modo che restituisca correttamente le richieste HEAD sarebbe complicato, non impossibile ma richiede un lavoro extra. L'applicazione si trova dietro un proxy NGINX, mi chiedevo se c'era un modo per ottenere NGINX per convertire le richieste HEAD ricevute dai client in richieste GET al back-end, quindi scartare la risposta ad eccezione delle intestazioni e rispedirla al client come se i nostri server applicazioni fossero in grado di rispondere alle richieste HEAD.
Configurazione attuale (abbastanza standard)
upstream ourupstream{
server unix:/var/apps/sockets/ourapp.socket.thread1
server unix:/var/apps/sockets/ourapp.socket.thread2
server unix:/var/apps/sockets/ourapp.socket.thread3
[like 20 of these]
}
server {
listen 1.2.3.4:80;
server_name ourapp;
access_log /var/apps/logs/ourapp.nginx.plog proxy;
error_log /var/apps/logs/ourapp.nginx.elog info;
gzip on;
gzip_types text/plain text/html;
proxy_intercept_errors on;
proxy_connect_timeout 10;
proxy_send_timeout 10;
proxy_read_timeout 10;
proxy_next_upstream error timeout;
client_max_body_size 2m;
error_page 404 /static/404.html;
error_page 500 501 502 503 504 =500 /static/500.html;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ourupstream/;
}
location /static/ {
root /var/apps/global/;
}
}