✅ Antrian multi-threading
Cara menggunakannya adalah sebagai berikut:
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 ./yadihttpdContoh Proyek Blog: Pohon File Blog
【Halaman Beranda Blog】
Fungsi diselesaikan dalam versi 0.1:
✅ Cetak log, baca header pesan, dan nama file log dihasilkan berdasarkan waktu
✅Sepoll Versi dan kembalikan file yang sesuai
✅ antrian log, switching otomatis, menulis utas log saja
✅ Dukungan file besar
✅ Keterbatasan izin membaca file
✅ Blog Sederhana
Tampilkan nomor baris tertentu, fungsi, nama file
Lihat utas log:
Benang log umumnya tidur (antriannya kosong, yang berarti tidak sibuk, melepaskan kunci, blok selama satu detik).
? Akses log sebelum tautan:
? Akses tautan log:
? Ketika sejumlah catatan log (seperti 5000), file akan secara otomatis diaktifkan.
Bacaan gambar
Dukungan file besar (mungkin beberapa bug)
Epollout menangani buffer dan mengatur fds non-blocking. Server dapat menangani beberapa permintaan secara bersamaan.
Tata Letak Direktori Root File Server
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.mdfilePerpustakaan digunakan:
Ditandai: Markdown -> HTML
Prismjs: Sorotan Kode dan Tata Letak Lainnya
? Investigasi kebocoran FD
Ada sesuatu yang saya lupa tutup. Setelah pengujian untuk sementara waktu, seperti yang ditunjukkan pada gambar di bawah ini, tampaknya tidak ada masalah dengan FD kebocoran, tetapi masih ada sesekali segfault yang belum ditemukan.
? Pemeriksaan Kesalahan Segmen
? URL terlalu lama: Terima kasih telah menguji program jahat situs web saya di malam hari
? Perbaikan kesalahan direktori akses langsung URL, sama seperti di atas.
Satu utas Accpet, satu utas log, dan tiga utas anak menangani permintaan, dan setiap inti diminta sekitar 1400 per detik.