วิธีแก้ไข NGINX 403 Forbidden

How Fix Nginx 403 Forbidden



เมื่อจัดการกับเซิร์ฟเวอร์และทรัพยากรบนเว็บ เราพบข้อผิดพลาดที่เราทำให้เกิดเมื่อทำการบำรุงรักษาและการกำหนดค่า เมื่อคุณพบข้อผิดพลาดดังกล่าว คุณต้องวินิจฉัยและแก้ไขปัญหาโดยเร็วที่สุดเพื่อหลีกเลี่ยงการหยุดทำงานและข้อมูลสูญหาย

คู่มือฉบับย่อนี้จะแก้ไขข้อผิดพลาดทั่วไปเมื่อทำงานกับเซิร์ฟเวอร์ NGINX (403 Forbidden) สาเหตุ และวิธีแก้ไข







ข้อผิดพลาด Nginx 403 คืออะไร

ข้อผิดพลาดที่ต้องห้าม Nginx 403 คือรหัสสถานะที่สร้างและแสดงต่อผู้ใช้เมื่อไคลเอ็นต์พยายามเข้าถึงส่วนหนึ่งของเว็บเซิร์ฟเวอร์โดยมีสิทธิ์ไม่เพียงพอ ตัวอย่างเช่น NGINX ปกป้องรายการไดเรกทอรีและจะส่งผลให้เกิดข้อผิดพลาด 403





สาเหตุฝั่งเซิร์ฟเวอร์ของข้อผิดพลาด Nginx 403

ก่อนที่เราจะเริ่มต้น ควรสังเกตว่าข้อผิดพลาดอาจมาจากฝั่งไคลเอ็นต์ ไม่ใช่ตัวเซิร์ฟเวอร์เอง เราจะแก้ไขข้อผิดพลาดฝั่งเซิร์ฟเวอร์ก่อน จากนั้นจึงค่อยเกิดข้อผิดพลาดฝั่งไคลเอ็นต์





สาเหตุที่ 1: ไฟล์ดัชนีไม่ถูกต้อง

สาเหตุแรกและทั่วไปของข้อผิดพลาดต้องห้าม NGINX 403 คือการกำหนดค่าไฟล์ดัชนีไม่ถูกต้อง

ไฟล์การกำหนดค่า Nginx ระบุไฟล์ดัชนีที่จะโหลดและลำดับที่จะโหลด อย่างไรก็ตาม หากไฟล์ดัชนีที่ระบุไม่อยู่ในไดเร็กทอรี Nginx จะส่งคืนข้อผิดพลาดต้องห้าม 403 รายการ



ตัวอย่างเช่น การกำหนดค่าด้านล่างกำหนดไฟล์ดัชนีและวิธีโหลดไฟล์เหล่านั้น

ที่ตั้ง/ {
ดัชนี index.html index.htm index.html inde.php;
}

วิธีหนึ่งในการแก้ไขปัญหานี้คือการเพิ่มไฟล์ดัชนีที่ระบุในไฟล์การกำหนดค่าหรือเพิ่มไฟล์ดัชนีที่มีอยู่ไปยังไฟล์กำหนดค่า

อีกวิธีในการแก้ปัญหานี้คืออนุญาตให้ Nginx แสดงรายการไดเร็กทอรีหากไฟล์ดัชนีไม่พร้อมใช้งาน เปิดใช้งานโมดูลนี้โดยเพิ่มรายการต่อไปนี้ในไฟล์การกำหนดค่า

ที่ตั้ง/ {
เปิดดัชนีอัตโนมัติ;
autoindex_exact_size เมื่อ;
}

บันทึก: เราไม่แนะนำวิธีนี้ในเซิร์ฟเวอร์ที่เข้าถึงได้แบบสาธารณะ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการให้บริการเนื้อหาแบบคงที่ ให้พิจารณาทรัพยากรเอกสาร Nginx ที่ให้ไว้ด้านล่าง:

https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/

สาเหตุที่ 2: ตั้งค่าการอนุญาตไม่ถูกต้อง

ข้อผิดพลาดที่ต้องห้าม Nginx 403 อาจเป็นผลมาจากไฟล์และไดเรกทอรีที่มีการตั้งค่าการอนุญาตไม่ถูกต้อง เพื่อให้ Nginx สามารถเซิร์ฟเวอร์ไฟล์และทรัพยากรเฉพาะไปยังไคลเอนต์ได้สำเร็จ Nginx จำเป็นต้องมี RWX—อ่าน เขียนและดำเนินการ—สิทธิ์บนเส้นทางทั้งหมด

ในการแก้ไขข้อผิดพลาดนี้ ให้เปลี่ยนการอนุญาตไดเรกทอรีเป็น 755 และสิทธิ์ของไฟล์เป็น 644 ตรวจสอบให้แน่ใจว่าผู้ใช้ที่เรียกใช้กระบวนการ Nginx เป็นเจ้าของไฟล์ ตัวอย่างเช่น ตั้งค่าผู้ใช้เป็น www-data:

sudo chown -NSwww-data: www-data*

สุดท้าย ตั้งค่าการอนุญาตไดเร็กทอรีและไฟล์เป็น:

sudo chmod 755 {ถึงคุณ}
sudo chmod 644 {ไฟล์}

สาเหตุฝั่งไคลเอ็นต์ของข้อผิดพลาด 403

ดังที่กล่าวไว้ ในบางครั้ง ข้อผิดพลาด 403 อาจเกิดจากผู้ใช้ แทนที่จะอยู่ที่ฝั่งเซิร์ฟเวอร์ ในการแก้ไขปัญหาดังกล่าวในฝั่งไคลเอ็นต์ ให้ดำเนินการดังต่อไปนี้

  • ตรวจสอบให้แน่ใจว่าคุณกำลังเข้าถึงตำแหน่งเว็บที่ถูกต้อง
  • ล้างแคชของเบราว์เซอร์
  • ตรวจสอบให้แน่ใจว่าไฟร์วอลล์หรือพร็อกซีอนุญาตให้คุณเข้าถึงทรัพยากรบนเว็บ

บทสรุป

คู่มือฉบับย่อนี้กล่าวถึงสาเหตุของข้อผิดพลาดต้องห้าม NGIX 403 และวิธีแก้ไขต่างๆ เป็นการดีที่จะดูบันทึกของเซิร์ฟเวอร์ก่อนที่จะลองวิธีการแก้ไขปัญหาใดๆ