✅คิวมัลติเธรด
วิธีใช้เป็นดังนี้:
pi@centos: ~ /yadihttpd$ ./yadihttpd
usage: ./yadihttpd < port > < websit root > < log dir >
要提前创建好文件夹和响应静态文件
如:./yadihttpd 80 /home/pi/www /home/pi/yadihttpdlog
pi@centos: ~ /yadihttpd$ sudo ./yadihttpd 80 /home/pi/www /home/pi/yadihttpdlog
应设置euid, 如:chmod u+s ./yadihttpdตัวอย่างโครงการบล็อก: แผนผังบล็อก
【โฮมเพจบล็อก】
ฟังก์ชั่นเสร็จสมบูรณ์ในเวอร์ชัน 0.1:
✅พิมพ์บันทึกอ่านส่วนหัวข้อความและชื่อไฟล์บันทึกถูกสร้างขึ้นตามเวลา
✅รุ่นเวอร์ชันและส่งคืนไฟล์ที่เกี่ยวข้อง
✅บันทึกคิว, การสลับอัตโนมัติ, การเขียนบันทึกเพียงอย่างเดียวเธรด
✅การสนับสนุนไฟล์ขนาดใหญ่
✅ข้อ จำกัด การอนุญาตการอ่านไฟล์
✅บล็อกง่ายๆ
แสดงหมายเลขบรรทัดเฉพาะฟังก์ชันชื่อไฟล์
ดูเธรดบันทึก:
โดยทั่วไปแล้วเธรดบันทึกจะนอนหลับ (คิวว่างเปล่าซึ่งหมายความว่ามันไม่ว่างปล่อยล็อคบล็อกเป็นเวลาหนึ่งวินาที)
- เข้าถึงบันทึกก่อนลิงค์:
- เข้าถึงบันทึกลิงก์:
- เมื่อบันทึกบันทึกจำนวนหนึ่ง (เช่น 5000) ไฟล์จะถูกสลับโดยอัตโนมัติ
การอ่านรูปภาพ
การสนับสนุนไฟล์ขนาดใหญ่ (อาจเป็นข้อบกพร่องบางอย่าง)
Epollout จัดการบัฟเฟอร์และตั้งค่า FD ที่ไม่ปิดกั้น เซิร์ฟเวอร์สามารถจัดการหลายคำขอในเวลาเดียวกัน
รูปแบบไดเรกทอรีรูทไฟล์เซิร์ฟเวอร์
pi@raspberrypi: ~ /www $ tree
.
├── blog # marked转换之后的博客
│ ├── linux_notes.html
│ └── test.html
├── css
│ ├── my.css
│ └── prism.css # 代码高亮等等
├── img
│ ├── 1.jpg
│ ├── eg_tulip.jpg
│ ├── lake.jpg
│ └── log.jpg
├── index.html
├── js
│ └── prism.js # 代码高亮等等
└── md # 初始markdown形式
├── linux_notes.md
├── md2html.sh #批量转换脚本 md->html
├── test.md
└── tmp.mdfileห้องสมุดที่ใช้:
ทำเครื่องหมาย: markdown -> html
prismjs: การเน้นรหัสและเลย์เอาต์อื่น ๆ
- การตรวจสอบการรั่วไหลของ FD
มีบางอย่างที่ฉันลืมปิด หลังจากการทดสอบสักพักดังที่แสดงในรูปด้านล่างดูเหมือนว่าจะไม่มีปัญหากับการรั่วไหลของ FD แต่ยังมี segfault เป็นครั้งคราวที่ยังไม่พบ
- การตรวจสอบข้อผิดพลาดส่วน
- URL ยาวเกินไป: ขอบคุณสำหรับการทดสอบโปรแกรมที่เป็นอันตรายของเว็บไซต์ของฉันในเวลากลางคืน
- การแก้ไขข้อผิดพลาดของไดเรกทอรีการเข้าถึงโดยตรง URL เช่นเดียวกับด้านบน
หนึ่งเธรด accpet, หนึ่งเธรดบันทึกหนึ่งและเธรดลูกสามตัวจัดการคำขอและแต่ละแกนจะร้องขอประมาณ 1,400 ต่อวินาที