ฉันใช้ letsencrypt เพื่อตั้งค่า ssl สำหรับโครงการ django ที่โฮสต์ในโหมดการผลิตโดยใช้ nginx และ gunicorn
OS (ระบบปฏิบัติการ) ที่ใช้คือ: amazon Linux 2
เมื่อใดก็ตามที่ฉันพยายามเรียกใช้เซิร์ฟเวอร์ ฉันมักจะได้รับหน้าเริ่มต้นของ amazon Linux 2 และเมื่อฉันตรวจสอบบันทึกข้อผิดพลาด ฉันได้รับข้อผิดพลาดต่อไปนี้:
2021/09/11 11:59:14 [ข้อผิดพลาด] 18402#18402: *1961 open() "/usr/share/nginx/html/favicon.ico" ล้มเหลว (2: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว), ไคลเอ็นต์: 122.174 .182.129, เซิร์ฟเวอร์: example.com, คำขอ: "GET /favicon.ico HTTP/2.0", โฮสต์: "www.example.com", ผู้อ้างอิง: "https://www.example.com/"
ผลลัพธ์ของ sudo nginx -T
:
nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ไวยากรณ์ใช้ได้
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/nginx.conf สำเร็จ
# ไฟล์กำหนดค่า /etc/nginx/nginx.conf:
# สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่า ดู:
# * เอกสารภาษาอังกฤษอย่างเป็นทางการ: http://nginx.org/en/docs/
# * เอกสารทางการของรัสเซีย: http://nginx.org/ru/docs/
ผู้ใช้ nginx;
worker_processes อัตโนมัติ
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# โหลดโมดูลไดนามิก ดู /usr/share/doc/nginx/README.dynamic
รวม /usr/share/nginx/modules/*.conf;
เหตุการณ์ {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$สถานะ $body_bytes_sent "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log หลัก;
ส่งไฟล์บน;
tcp_nopush บน;
tcp_nodelay บน;
keepalive_timeout 65;
types_hash_max_size 4096;
รวม /etc/nginx/mime.types;
แอปพลิเคชัน default_type/octet-stream;
# โหลดไฟล์การกำหนดค่าแบบแยกส่วนจากไดเร็กทอรี /etc/nginx/conf.d
# ดู http://nginx.org/en/docs/ngx_core_module.html#include
# สำหรับข้อมูลเพิ่มเติม.
รวม /etc/nginx/conf.d/*.conf;
เซิร์ฟเวอร์ {
#if ($host = www.example.com) {
# ส่งคืน 301 https://$host$request_uri;
#} # จัดการโดย Certbot
#
# ถ้า ($host = example.com) {
# ส่งคืน 301 https://$host$request_uri;
# } # จัดการโดย Certbot
ฟัง 80;
server_name example.com www.example.com;
รูท /home/ec2-user/business;
ถ้า ($host = www.example.com) {
ส่งคืน 301 https://$host$request_uri;
} # จัดการโดย Certbot
ถ้า ($host = example.com) {
ส่งคืน 301 https://$host$request_uri;
} # จัดการโดย Certbot
สถานที่ = /favicon.ico { access_log off; ปิด log_not_found; }
ตำแหน่ง / คงที่ {
รูท /home/ec2-user/business;
}
ที่ตั้ง / {
proxy_set_header โฮสต์ $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/home/ec2-user/buisness/buisness.sock;
}
}
# เซิร์ฟเวอร์ {
# ฟัง 80;
# ฟัง [::]:80;
# ชื่อเซิร์ฟเวอร์ _;
# root /home/ec2-user/business;
# โหลดไฟล์การกำหนดค่าสำหรับบล็อกเซิร์ฟเวอร์เริ่มต้น
# รวม /etc/nginx/default.d/*.conf;
# error_page 404 /404.html;
# สถานที่ = /404.html {
# }
# error_page 500 502 503 504 /50x.html;
# สถานที่ = /50x.html {
# }
#}
# การตั้งค่าสำหรับเซิร์ฟเวอร์ที่เปิดใช้งาน TLS
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
server_name example.com www.example.com;
รูท /home/ec2-user/business/;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # จัดการโดย Certbot
ssl_session_cache ที่แชร์:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers สูง:!aNULL:!MD5;
เปิด ssl_prefer_server_ciphers;
# โหลดไฟล์การกำหนดค่าสำหรับบล็อกเซิร์ฟเวอร์เริ่มต้น
รวม /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
ตำแหน่ง = /40x.html {
}
error_page 500 502 503 504 /50x.html;
ตำแหน่ง = /50x.html {
}
}
}
# ไฟล์กำหนดค่า /etc/nginx/mime.types:
ประเภท {
ข้อความ/html html htm shtml;
ข้อความ/css css;
ข้อความ/xml xml;
รูปภาพ/gif gif;
รูปภาพ/jpeg jpeg jpg;
แอปพลิเคชัน/จาวาสคริปต์ js;
แอ็พพลิเคชัน/atom+xml อะตอม;
แอปพลิเคชัน/rss+xml rss;
ข้อความ/mathml mml;
ข้อความ/ธรรมดา txt;
text/vnd.sun.j2me.app-descriptor jad;
ข้อความ/vnd.wap.wml wml;
ข้อความ/x-คอมโพเนนต์ htc;
รูปภาพ/png png;
ภาพ/svg+xml svg svgz;
รูปภาพ/tiff tif tiff;
ภาพ/vnd.wap.wbmp wbmp;
รูปภาพ/เว็บเพจ เว็บเพจ;
ไอคอนรูปภาพ/x-icon;
ภาพ/x-jng jng;
ภาพ/x-ms-bmp bmp;
ตัวอักษร/woff woff;
ตัวอักษร/woff2 woff2;
แอปพลิเคชัน / java-archive jar war ear;
แอปพลิเคชัน/json json;
แอปพลิเคชัน/mac-binhex40 hqx;
เอกสารแอปพลิเคชัน/msword;
ใบสมัคร/pdf pdf;
ใบสมัคร/postscript ps eps ai;
แอปพลิเคชัน/rtf rtf;
แอปพลิเคชัน/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
แอปพลิเคชัน/vnd.google-earth.kmz kmz;
แอปพลิเคชัน/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
แอปพลิเคชัน/vnd.ms-powerpoint ppt;
แอปพลิเคชัน/vnd.oasis.opendocument.graphics odg;
แอปพลิเคชัน/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
แอปพลิเคชัน/vnd.oasis.opendocument.text odt;
แอปพลิเคชัน/vnd.openxmlformats-officedocument.presentationml.presentation
pptx;
แอปพลิเคชัน/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx;
แอปพลิเคชัน/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
แอปพลิเคชัน/vnd.wap.wmlc wmlc;
แอปพลิเคชัน/x-7z-บีบอัด 7z;
ใบสมัคร/x-cocoa cco;
แอปพลิเคชัน/x-java-archive-diff jardiff;
แอปพลิเคชัน/x-java-jnlp-file jnlp;
เรียกใช้แอปพลิเคชัน / x-makeself;
แอปพลิเคชัน/x-perl pl pm;
แอปพลิเคชัน/x-pilot prc pdb;
แอปพลิเคชั่น/x-rar-บีบอัด rar;
แอปพลิเคชั่น / x-redhat-package-manager รอบต่อนาที;
ใบสมัคร / ทะเล x-sea;
แอปพลิเคชั่น/x-shockwave-แฟลช swf;
แอปพลิเคชั่น / นั่ง x-stuffit;
ใบสมัคร/x-tcl tcl tk;
ใบสมัคร/x-x509-ca-cert จาก pem crt;
แอปพลิเคชัน/x-xpinstall xpi;
แอปพลิเคชัน/xhtml+xml xhtml;
แอปพลิเคชัน/xspf+xml xspf;
แอปพลิเคชั่น / ซิปซิป;
แอปพลิเคชัน / octet-stream bin exe dll;
แอ็พพลิเคชัน/octet-stream deb;
แอปพลิเคชัน/octet-stream dmg;
แอปพลิเคชั่น/octet-stream iso img;
แอปพลิเคชัน/ออคเต็ตสตรีม msi msp msm;
เสียง/midi กลาง midi kar;
เสียง/mpeg mp3;
เสียง/ogg ogg;
เสียง/x-m4a m4a;
เสียง/x-realaudio ra;
วิดีโอ/3gpp 3gpp 3gp;
วิดีโอ/mp2t ts;
วิดีโอ/mp4 mp4;
วิดีโอ/mpeg mpeg mpg;
วิดีโอ/quicktime mov;
วิดีโอ/เว็บเอ็ม เว็บเอ็ม;
วิดีโอ/x-flv flv;
วิดีโอ/x-m4v m4v;
วิดีโอ/x-mng mng;
วิดีโอ/x-ms-asf asx asf;
วิดีโอ/x-ms-wmv wmv;
วิดีโอ/x-msvideo avi;
}
เมื่อฉันวิ่ง sudo nginx -t
: ฉันไม่ได้รับข้อผิดพลาด
PS: นี่เป็นครั้งแรกที่ฉันโฮสต์ ssl ด้วย letsencrypt และ nginx ดังนั้นฉันไม่เสียใจหากไฟล์ .conf ดูเป็นคลัสเตอร์มาก
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างสูง ขอบคุณ!