✅ Очередь многопоточная
Как использовать его следующим образом:
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:
✅ Отпечатать журналы, прочитать заголовки сообщений и имена файлов журнала сгенерированы в зависимости от времени
✅epoll версия и вернуть соответствующий файл
✅ Очередь журнала, автоматическое переключение, отдельный поток записи журнала.
✅ Большая поддержка файлов
✅ Ограничения разрешения на чтение файлов
✅ Простой блог
Показать конкретный номер строки, функция, имя файла
Посмотреть потока журнала:
Поток журнала обычно спит (очередь пуста, что означает, что он не занят, выпускает блокировку, блоки на одну секунду).
? Доступ к журналу перед ссылкой:
? Доступ к журналу ссылок:
? Когда определенное количество записей журнала (например, 5000), файл будет автоматически переключаться.
Чтение изображения
Большая поддержка файлов (может быть некоторые ошибки)
Epollout обрабатывает буферы и устанавливает неблокирующие FDS. Сервер может обрабатывать несколько запросов одновременно.
Серверный файл root root Directorytout
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, один поток журнала и три детских потока обрабатывают запрос, и каждое ядро запрашивается около 1400 в секунду.