ブログ移転?しました エックスサーバを契約してみたので、 いろいろカスタマイズできそうなWordPressを使って ブログを作ってみました。 https://gametech.vatchlog.com/ 多分こちらでも同じような記事を書いていくと思います。 忍者ブログ

ばちブロ

プログラミングとか徒然を書いていた(過去形)

【nginx】HttpEchoModuleを使ってみる

【2019/2/14追記】

以下のブログにて最新版のNginx(ver 1.15.8) での導入方法を記事にしました。
最新版での導入を考えている方はこちらのURLにて確認ください。
https://gametech.vatchlog.com/2019/02/14/nginx-install/

以下、アーカイブとして残しておきます。





お久しぶりです。

最近業務でnginxを使うようになってきたのですが、
proxy_read_timeoutの検証する必要が出てきました。

しかし、調べてみたところ、nginxには標準では
レスポンスをディレイする機能はなく、レスポンスの遅延再現ができませんでした。

なので、何かいいモジュールないかなーって調べてみたら、
HttpEchoModuleというものを発見しました。

使ってみたらなかなか良さそうなものだったので、メモ代わりに書き残します。


※yumインストール後のモジュールの追加方法がわからないため、今回はソースコンパイルで。
 自分はCentOS6.6にインストールしました。

■ソースコンパイルやnginxに必要なパッケージのインストール
# yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel




まぁ、何も考えずにインストールしてもたぶん大丈夫です。

■nginxのソースのダウンロード
# cd /usr/local/src
# wget http://nginx.org/download/nginx-1.7.7.tar.gz




ここによると、HttpEchoModuleが対応している最終バージョンは1.7.7らしいので、それをインストールします。
もしかしたらもっと新しいのでもいいかもしれない。
もちろん、これより以前のバージョンでも大丈夫っぽいです。

■HttpEchoModuleのダウンロード
# cd /usr/local/src
# wget https://github.com/openresty/echo-nginx-module/archive/v0.56.tar.gz




モジュールのダウンロード。
これが最新版なんかな?
ほかに見つからなかった・・・(情報あればください)

■DLファイルの解凍
# cd /usr/loca/src
# tar zxvf nginx-1.7.7.tar.gz
#tar zxvf v0.56.tar.gz





■インストール
# cd /usr/local/src/nginx-1.7.7
# ./configure --prefix=/usr/local/nginx-1.7.7 --with-http_ssl_module --add-module=../echo-nginx-module-0.56
# make
# make install




エラーが出なければOK!

■シンボリックリンクを貼る(任意)
# ln -s /usr/local/nginx-1.7.7/sbin/nginx /usr/sbin/nginx
# ln -s /usr/local/nginx-1.7.7/conf /etc/nginx




自分としてはやっぱり /etc/nginx 以下にコンフィグが無いと違和感MAXなので。
直接/etcにインストールファイルを置いてもいいんだけど、/etc以下はコンフィグだけ置きたい

■起動スクリプトの作成
# vi /etc/init.d/nginx




作成って言っても、ここからコピペするだけでOKのはず・・・
不安な人はnginx=""のところとNGINX_CONF_FILE=""のところを見て書き換えてください

■コンフィグテスト
# /etc/init.d/nginx configtest




シンタックスOKと出力されたら、とりあえずはインストール完了です!


まぁ、まずは適当に使ってみましょう。

# vi /etc/nginx/nginx.conf




ほんで、新しくlocationディレクティブ作って。。。
location /echo_test{
echo_sleep 3;
echo Test OK!
}




ほんで、後はブラウザでたたくなり、curlやwgetたたくなりでGETリクエストを投げてみましょう。

# curl http://localhost/echo_test




おお!ちゃんとGETするまで3秒ぐらいかかった!

ログを見ても、レスポンスに3s程度かかっていることが確認できます。
これはタイムアウトなどの検証に便利ですね。

拍手[1回]

PR