เนื่องจากการตัดสินใจออกแบบที่แย่มากเรามีแอปพลิเคชันที่ไม่สามารถตอบคำขอ HTTP HEAD ได้ (ส่งคืน 'ไม่อนุญาตให้ใช้วิธีการ') การปรับเปลี่ยนซอฟต์แวร์เพื่อส่งกลับ 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
@kolbyjack proxy_pass โดยใช้ซ็อกเก็ตยูนิกซ์, NGINX 1.1.12 และ 1.0.11 in dev, 1.0.11 ในการผลิต (เรากำลังจะย้ายการผลิตไปที่ 1.1.12 เร็ว ๆ นี้)
—
Smudge