どんなHTTPリクエストにも「200 OK」を返す”なんちゃってWEBサーバー”をご紹介します。
といっても、ただのコマンドです。
なんちゃってWEBサーバーが何の役に立つのかというと、たとえばロードバランサーのヘルスチェックでHTTPリクエストの応答コードをチェックしている場合になんちゃってWEBサーバーで応答させる事があります。サーバープロセスが落ちているけれどロードバランサーの死活監視は成功させたい場合に役立つわけです。
というか、それ以外の場面で役に立った事はないです。
サーバーの準備が出来ていない場合などヘルスチェック的には生きているように見せたい場合のテクニックですね。
nc(netcat)で対応する
今回はncがインストールされている事を前提にしています。
ncはご存じの通り「-l」オプションでサーバーのように待ち受ける事が可能です。例として12345/tcpで待ち受ける場合は次のようにします。
nc -l 12345
これでTCPポート12345番で待ち受けます。ただし接続があったら切れてしまうので、WEBサーバーっぽく200 OKを返すようにする必要があります。
nc -l 12345 <<EOF HTTP/1.0 200 OK <html></html> EOF
上記のコマンドを実行した状態で別の端末から接続すると以下のように表示されます。
$ curl http://localhost:12345 <html></html> $
ncコマンドを実行した側は以下のように表示されます。オプションとして「-4(IPv4)」と「-v(冗長出力)」を付けています。
$ nc -4 -v -l 12345 <<EOF HTTP/1.0 200 OK <html></html> EOF GET / HTTP/1.1 Host: localhost:12345 User-Agent: curl/7.58.0 Accept: */* $
この状態ですと接続する度に切断されてしまうのでループで回しましょう。次のようにします。
$ while : do nc -4 -v -l 12345 <<EOF HTTP/1.0 200 OK <html></html> EOF done
これで何度も連続で接続できます。
もっとこだわりたい方はレスポンスヘッダーに「Content-length」や「Server」など色々と付けたら良いかと思います。
最低限の動きでよければ掲載しているコマンドで十分です。