ฉันไม่สามารถหยุดรับ 400 คำขอที่ไม่ถูกต้อง หลังจากการค้นคว้าบางอย่าง ฉันพบว่านั่นหมายความว่าคำขอมีส่วนหัวที่ไม่ถูกต้องเนื่องจากการกำหนดค่าที่ไม่ถูกต้อง
นี่คือของฉัน nginx.conf
ไฟล์:
ผู้ใช้ nginx;
worker_processes อัตโนมัติ
เหตุการณ์ {
worker_connections 1,000;
}
error_log /var/log/nginx/error.log เตือน;
pid /var/run/nginx.pid;
http {
รวม /etc/nginx/mime.types;
แอปพลิเคชัน default_type/octet-stream;
ปิด server_tokens;
set_real_ip_ จาก 192.168.0.0/16;
set_real_ip_ จาก 172.16.0.0/12;
set_real_ip_ จาก 10.0.0.0/8;
real_ip_header X-ส่งต่อ-สำหรับ;
real_ip_recursive บน;
log_format main '$remote_addr - $remote_user "$request"'
'$สถานะ $body_bytes_sent $http_host "$http_referer"'
'"$http_user_agent"';
access_log /var/log/nginx/access.log หลัก;
ส่งไฟล์บน;
#tcp_nopush บน;
keepalive_timeout 65;
เปิด gzip;
gzip_disable "msie6";
gzip_vary บน;
gzip_proxyed ใด ๆ ;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
ข้อความ gzip_types/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/ข้อความจาวาสคริปต์/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+rss ข้อความ/จาวาสคริปต์;
รวม /etc/nginx/conf.d/*.conf;
รวม /etc/nginx/sites-enabled/*.conf;
}
นี่คือผลลัพธ์ของการบันทึกเมื่อฉันได้รับการร้องขอไปยังเซิร์ฟเวอร์:
" ขณะอ่านโปรโตคอล PROXY ลูกค้า: 172.26.0.5 เซิร์ฟเวอร์: 0.0.0.0:80
2021/09/16 11:08:07 [ข้อผิดพลาด] 8#8: *8 ส่วนหัวเสีย: "GET /favicon.ico HTTP/1.1
Pragma: ไม่มีแคช
การควบคุมแคช: ไม่มีแคช
วินาที-ch-ua: "Google Chrome";v="93", " ไม่ใช่แบรนด์";v="99", "Chromium";v="93"
วินาที-ch-ua-มือถือ: ?0
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML เช่น Gecko) Chrome/93.0.4577.82 Safari/537.36
แพลตฟอร์ม sec-ch-ua: "Windows"
ยอมรับ: image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
sec-fetch-site: แหล่งกำเนิดเดียวกัน
โหมดดึงข้อมูลวินาที: ไม่มีคอร์
วินาทีดึงข้อมูลปลายทาง: รูปภาพ
ผู้อ้างอิง: https://localhost/
ยอมรับการเข้ารหัส: gzip, deflate, br
ภาษาที่รองรับ: en-US,en;q=0.9
โฮสต์: localhost
X-ส่งต่อ-สำหรับ: 172.26.0.1
พร็อกซีย้อนกลับ nginx นี้ทำงานบนคอนเทนเนอร์นักเทียบท่าดังต่อไปนี้ ไฟล์นักเทียบท่า
:
จาก nginx:1.16
ENV DOCKER_IMAGE nginx
ENV DOCKER_NAME nginx
ENV TZ แอฟริกา/ตูนิส
ชุด RUN -x && \
# ตัวช่วยเล็ก ๆ เพื่อโหลดการกำหนดค่า nginx ใหม่
printf '#!/bin/bash\n/usr/sbin/nginx -s reload\n' >> /usr/local/bin/nginx-reload && \
chmod +x /usr/local/bin/nginx-reload && \
# ลบการกำหนดค่าเซิร์ฟเวอร์เริ่มต้น nginx
rm /etc/nginx/conf.d/default.conf
สำเนา ./conf/ /etc/
ENV WORKER_PROCESSES อัตโนมัติ
ENV WORKER_CONNECTIONS 1024
ENV SERVER_NAME โลคอลโฮสต์