✅ Warteschlange Multi-Threading
Wie man es benutzt, ist wie folgt:
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 ./yadihttpdBeispiel Blog -Projekt: Blog -Dateibaum
【Blog -Homepage】
Funktionen in Version 0.1 ausgefüllt:
✅ Protokolle drucken, Nachrichtenheader lesen und Protokolldateinamen werden basierend auf der Zeit generiert
✅EPOLL -Version und gibt die entsprechende Datei zurück
✅ Protokollwarteschlange, automatisches Schalten, Log -Schreiben allein Thread
✅ Große Dateiunterstützung
✅ Lesen des Datei -Berechtigungsbeschränkungen
✅ Einfacher Blog
Zeigen Sie spezifische Zeilennummer, Funktion, Dateiname an
Zeigen Sie den Protokoll -Thread an:
Der Protokollfaden schläft im Allgemeinen (die Warteschlange ist leer, was bedeutet, dass er nicht beschäftigt ist, das Schloss freigibt, Blöcke für eine Sekunde).
? Greifen Sie vor dem Link auf das Protokoll zu:
? Greifen Sie auf das Linkprotokoll zu:
? Wenn eine bestimmte Anzahl von Protokolldatensätzen (z. B. 5000), wird die Datei automatisch umgeschaltet.
Bildlesung
Große Dateiunterstützung (können einige Fehler sein)
Epolout verarbeitet Puffer und setzt nicht blockierende FDs. Der Server kann mehrere Anforderungen gleichzeitig bearbeiten.
Serverdatei -Root -Verzeichnis -Layout
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.mdfileDie Bibliothek verwendete:
gekennzeichnet: Markdown -> HTML
Prismjs: Code -Hervorhebung und andere Layouts
? FD -Leckuntersuchung
Ich habe etwas vergessen zu schließen. Nach einer Weile, wie in der Abbildung unten gezeigt, scheint es kein Problem mit FD -Leck zu geben, aber es gibt immer noch ein gelegentliches Segfault, das noch nicht gefunden wurde.
? Segmentfehlerprüfung
? URL ist zu lang: Vielen Dank, dass Sie das böswillige Programm meiner Website nachts getestet haben
? URL Direct Access Directory Fehler behoben, wie oben.
Ein Accpet -Thread, ein Protokoll -Thread und drei untergeordnete Threads verarbeiten die Anforderung, und jeder Kern wird etwa 1400 pro Sekunde angefordert.