元の記事、転載の際は明記してください:pagefaultから転載
この記事のリンクアドレス:キープアライブとパイプラインリクエスト処理のnginx分析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
ngx_http_handler(ngx_http_request_t *r) code >
| {コード>
switch
(r->headers_in.connection_type) {
🎜🎜 code> <code>case
0:
🎜🎜//バージョンが 1.0 より大きい場合、デフォルトはキープアライブです
🎜🎜
r- >keepalive = (r->http_version > NGX_HTTP_VERSION_10);
🎜🎜
break
;
🎜🎜 /code><code>case
NGX_HTTP_CONNECTION_CLOSE:ode>🎜🎜<code>//接続ヘッダーが close として指定されている場合、キープアライブは必要ありません
🎜 🎜 <code>r->keeper code>case
NGX_HTTP_CONNECTION_KEEP_ALIVE:ode>🎜🎜<code>コード>break
;
🎜🎜 コード>}コード>🎜🎜................................ ....🎜🎜}
🎜🎜🎜🎜🎜🎜
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
| ngx_http_finalize_connection(ngx_http_request_t *r)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 7 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
🎜1🎜🎜2🎜🎜3 🎜🎜4🎜🎜5🎜🎜6🎜🎜7🎜🎜8🎜🎜9🎜🎜10🎜🎜11🎜🎜12🎜 🎜13🎜🎜14 🎜🎜15🎜 🎜 | 🎜🎜🎜 🎜🎜r->keepalive = 0;🎜🎜🎜🎜 🎜🎜ngx_http_free_request(r, 0);🎜🎜🎜🎜 🎜🎜c ->data = hc;🎜🎜🎜🎜//タイマーを設定します🎜🎜 🎜🎜 🎜🎜ngx_add_timer(rev, clcf->keepalive_timeout);🎜🎜🎜🎜//次に読み取り可能なイベントを設定します🎜🎜🎜 🎜 🎜 🎜if🎜🎜(ngx_handle_read_event(rev, 0) != NGX_OK) {🎜🎜🎜🎜 🎜🎜ngx_http_close_connection(c); 🎜🎜 🎜🎜wev->handler = _ハンドラー;🎜🎜🎜🎜 🎜 🎜🎜🎜
声明: この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。 前の記事:PHP の基礎学習 (パート 3)次の記事:PHP の基礎学習 (パート 3) |