multi-threadingキュー
それを使用する方法は次のとおりです。
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バージョンと対応するファイルを返します
Rogログキュー、自動スイッチング、ログライティング単独のスレッド
✅大規模なファイルサポート
fileファイルの読み取り許可制限
✅シンプルなブログ
特定の行番号、関数、ファイル名を表示します
ログスレッドを表示します:
ログスレッドは一般的に眠ります(キューは空です。つまり、忙しくなく、ロックを解放し、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使用した図書館:
マーク:マークダウン - > html
PRISMJS:コードの強調表示およびその他のレイアウト
? FDリーク調査
閉じるのを忘れたものがあります。下の図に示すように、しばらくテストした後、FDリークには問題はないようですが、まだ発見されていない時折のセグフォールトがまだあります。
?セグメントエラーチェック
? URLが長すぎる:夜に私のウェブサイトの悪意のあるプログラムをテストしてくれてありがとう
? URL Direct Accessディレクトリエラー修正、上記と同じです。
1つのACCPETスレッド、1つのログスレッド、3つの子スレッドがリクエストを処理し、各コアが1秒あたり約1400リクエストされます。