ฉันได้ตั้งค่าเว็บไซต์ django ที่จะให้บริการโดย Nginx ทุกอย่างทำงานได้อย่างสมบูรณ์จนกระทั่งรูปภาพหยุดแสดงเมื่อเร็ว ๆ นี้
ฉันพยายามตรวจสอบสาเหตุที่เป็นไปได้ของการพัฒนาที่แปลกประหลาดนี้โดยใช้ ขด
จากนั้นตระหนักว่าประเภทเนื้อหาไม่เป็นที่รู้จัก ประเภทเนื้อหา: รูปภาพ/jpeg
คืน ประเภทเนื้อหา: text/html; ชุดอักขระ=utf-8
พฤติกรรมนี้ดูแปลก ๆ ตามที่ฉันได้รวมไว้ mime.types ในของฉัน nginx.conf ไฟล์.
ด้านล่างนี้คือตัวอย่างคำตอบจาก ขด
สั่งการ
user@server:~$ curl -I https://domain.name/media/upload/image.jpg
HTTP/1.1 200 ตกลง
เซิร์ฟเวอร์: nginx/1.18.0 (Ubuntu)
วันที่: อาทิตย์ 29 พฤษภาคม 2022 00:45:53 GMT
ประเภทเนื้อหา: text/html; ชุดอักขระ=utf-8
ความยาวเนื้อหา: 11392
การเชื่อมต่อ: มีชีวิตอยู่
X-Frame-Options: ปฏิเสธ
วารี: คุกกี้
X-Content-Type-Options: ไร้สาระ
นโยบายผู้อ้างอิง: แหล่งกำเนิดเดียวกัน
Cross-Origin-Opener-Policy: จุดกำเนิดเดียวกัน
ตั้งค่าคุกกี้: csrftoken=T9Z3jrp4dzOAINxo6JzOUyjiGwGYHoc37TZaYsIOmHHyrQUw30vI6ETIAcy66Wnr; หมดอายุ=อาทิตย์ 28 พฤษภาคม 2023 00:45:53 GMT; อายุสูงสุด=31449600; เส้นทาง=/; SameSite=หละหลวม
ของผมนี่เต็มๆ nginx.conf
ไฟล์
ผู้ใช้ www-data;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;
เหตุการณ์ {
worker_connections 768;
# multi_accept บน;
}
http {
##
# การตั้งค่าพื้นฐาน
##
ส่งไฟล์บน;
tcp_nopush บน;
types_hash_max_size 2048;
# ปิด server_tokens;
# server_names_hash_bucket_size 64;
# server_name_in_redirect ปิด;
รวม /etc/nginx/mime.types;
แอปพลิเคชัน default_type/octet-stream;
##
# การตั้งค่า SSL
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # วาง SSLv3 อ้างอิง: พุดเดิ้ล
เปิด ssl_prefer_server_ciphers;
##
# การตั้งค่าการบันทึก
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# การตั้งค่า Gzip
##
เปิด gzip;
# 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/*;
}
#จดหมาย {
# # ดูตัวอย่างสคริปต์การตรวจสอบได้ที่:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "ผู้ใช้";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# เซิร์ฟเวอร์ {
# ฟัง localhost:110;
#โปรโตคอลpop3;
# เปิดพร็อกซี;
# }
#
# เซิร์ฟเวอร์ {
# ฟัง localhost:143;
# โปรโตคอล imap;
# เปิดพร็อกซี;
# }
#}
เนื้อหาของ /etc/nginx/sites-enabled/app
# /etc/nginx/sites-enabled
เซิร์ฟเวอร์ {
ชื่อเซิร์ฟเวอร์ my_server_IP my_server_NAME;
สถานที่ = /favicon.ico { access_log off; ปิด log_not_found; }
ตำแหน่ง / คงที่ / {
รูท / บ้าน / ผู้ใช้ / แอพ;
}
ที่ตั้ง / {
รวม proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
ฟัง 443 ssl;
ssl_certificate /path/to/certfullchain.pem;
ssl_certificate_key /path/to/certprivkey.pem;
รวม /etc/cert-provider/options-ssl-nginx.conf;
ssl_dhparams /etc/cert-provider/ssl-dhparams.pem;
}
เซิร์ฟเวอร์ {
ถ้า ($host = www.domain.name {
ส่งคืน 301 https://$host$request_uri;
}
ถ้า ($host = domain.name) {
ส่งคืน 301 https://$host$request_uri;
}
ฟัง 80;
ชื่อเซิร์ฟเวอร์ my_server_IP my_server_NAME;
กลับ 404;
}
บันทึก: ฉันให้บริการเว็บไซต์นี้ด้วย gunicorn