ひどい設計上の決定が原因で、HTTP HEADリクエストに応答できないアプリケーションがあります( 'Method Not Allowed'を返します)。HEADリクエストを正しく返すようにソフトウェアを変更するのは難しいです。不可能ではありませんが、余分な作業です。アプリケーションはNGINXプロキシの背後にあり、NGINXがクライアントから受信したHEADリクエストをバックエンドへのGETリクエストに変換して、ヘッダー以外の応答を破棄し、それをアプリケーションサーバーがHEADリクエストに応答できたかのようにクライアント。
現在の構成(かなり標準)
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/;
}
}
どのようにしてリクエストをバックエンドに渡しますか?proxy_pass?fastcgi_pass?現在の構成を貼り付けることができますか?どのバージョンのnginxを実行していますか?
—
kolbyjack、2012年
UNIXソケットを使用する@kolbyjack proxy_pass、開発ではNGINX 1.1.12および1.0.11、本番では1.0.11(本番は1.1.12に間もなく移行します)
—
1