Bazı korkunç tasarım kararları nedeniyle, HTTP HEAD isteklerine yanıt veremeyen bir uygulamamız var ('Yöntem İzin Verilmez' iadesi). Yazılımın HEAD isteklerini doğru bir şekilde döndürmesi için değiştirilmesi zor, imkansız değil, fazladan bir iş olacaktır. Uygulama bir NGINX proxy arkasında oturuyor, müşteriden gelen HEAD isteklerini GET isteklerine arka uca dönüştürmek için NGINX almanın bir yolu olup olmadığını merak ettim, sonra başlıklar hariç yanıtı atın ve geri gönderin istemcimiz, uygulama sunucularımız HEAD isteklerine yanıt verebiliyormuş gibi.
Mevcut yapılandırma (oldukça standart)
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/;
}
}