質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTTPヘッダー

Hypertext Transfer Protocol(HTTP)の中のHTTPヘッダフィールドはHTTPの要求やレスポンスの機能しているパラメーターが含まれます。その要求もしくはレスポンスライン(メッセージの最初の一行)でメッセージヘッダを作ります。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

Q&A

解決済

1回答

2047閲覧

NGINX停止後のHTTP動作について

ichi357

総合スコア8

HTTPヘッダー

Hypertext Transfer Protocol(HTTP)の中のHTTPヘッダフィールドはHTTPの要求やレスポンスの機能しているパラメーターが含まれます。その要求もしくはレスポンスライン(メッセージの最初の一行)でメッセージヘッダを作ります。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

TCP

TCP(Transmission Control Protocol)とは、トランスポート層のプロトコルで、コネクション型のデータサービスです。

0グッド

0クリップ

投稿2018/07/11 05:01

nginxを使用した、HTTPサーバで、servrvice stop nginx でnginxを停止させましたが、停止させる前から、tcpdumpで、HTTPサーバへのヘルスチェックを見ると、停止直後の短い時間(1秒未満)では、HTTP: HTTP/1.1 200 OKが返ってきています。

あるいは、勘違いで停止直前に返ってきているという解釈の方が正しいのでしょうか。

もし、停止後に返っているのであれば、理由についてご教示いただけますでしょうか。

よろしくお願い致します。

※以下、停止したと思われる付近のログ
192.168.x.xx.http: Flags [S], seq 3846647820, win 29200, options [mss 1460,sackOK,TS val 343550952 ecr 0,nop,wscale 7], length 0
11:20:20.016256 IP 192.168.x.xx.http > 192.168.y.yy.42950: Flags [S.], seq 3279260051, ack 3846647821, win 28960, options [mss 1460,sackOK,TS val 166213882 ecr 343550952,nop,wscale 7], length 0
11:20:20.016278 IP 192.168.y.yy.42950 > 192.168.x.xx.http: Flags [.], ack 1, win 229, options [nop,nop,TS val 343550952 ecr 166213882], length 0
11:20:20.016477 IP 192.168.y.yy.42950 > 192.168.x.xx.http: Flags [P.], seq 1:71, ack 1, win 229, options [nop,nop,TS val 343550952 ecr 166213882], length 70: HTTP: GET / HTTP/1.0
11:20:20.016600 IP 192.168.x.xx.http > 192.168.y.yy.42950: Flags [.], ack 71, win 227, options [nop,nop,TS val 166213882 ecr 343550952], length 0
11:20:20.016668 IP 192.168.x.xx.http > 192.168.y.yy.42950: Flags [FP.], seq 1:303, ack 71, win 227, options [nop,nop,TS val 166213882 ecr 343550952], length 302: HTTP: HTTP/1.1 200 OK
11:20:20.017050 IP 192.168.y.yy.42950 > 192.168.x.xx.http: Flags [R.], seq 71, ack 304, win 237, options [nop,nop,TS val 343550952 ecr 166213882], length 0
11:20:21.018296 IP 192.168.y.yy.42952 > 192.168.x.xx.http: Flags [S], seq 941810699, win 29200, options [mss 1460,sackOK,TS val 343551202 ecr 0,nop,wscale 7], length 0
11:20:21.018507 IP 192.168.x.xx.http > 192.168.y.yy.42952: Flags [R.], seq 0, ack 941810700, win 0, length 0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Webサーバーの動きとしては、停止指示があったらまずリクエストの受付を停止して、現在接続済みのリクエストに関しては応答を返しきるまで待ってから終了する、という順番になっていると思います。
いきなり切断するとクライアント側としては応答のないままコネクションが切れる形になってしまって、非常にイレギュラーな動きになってしまうためです。
nginx本体にはすぐに切断する終了コマンドもありますが、通常は安全に停止するようになっていると思います。

投稿2018/07/11 05:16

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ichi357

2018/07/11 05:22

早々にご回答いただき、ありがとうございます。実際に、停止コマンドを打った時にプロンプトが返ってくるのに、1秒未満ですがタイムラグがありました。プロンプトが返ってきた時が終了だと思うので、その間に、ヘルスチェックが入って正常応答を返したということは考えられますか? 再度となり、申し訳ありませんが、ご教示いただけますでしょうか。
mather

2018/07/11 05:26

service 経由で停止コマンドを打った場合はまずプロセスの確認などが行われてから停止コマンドを発行するため、それまでの時間に多少のラグはあります。 ちなみに、service コマンドの仕組みは調べましたか?
ichi357

2018/07/11 05:39

度々、ご回答いただきありがとうございます。コマンドの仕組みまでは調べなかったので現在調査しております。結論がでたら、ここに記したいと考えています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問