nginxとは
nginx - Wikipediaダウンロード
http://wiki.nginx.org/InstallJaからダウンロードできます。CentOSにはrpmforge含めyumパッケージが無いので、ソースからインストールします。
今回は「安定版」とされている0.8系を選択しました。
インストール
僕が試した限り、以下のyumパッケージを予めインストールしておく必要がありました。- pcre-devel
- openssl-devel
コマンドをまとめると、以下の様になるはずです。
# yum -y install pcre-devel openssl-devel # tar zxvf ./nginx-0.8.54.tar.gz # cd ./nginx-0.8.54 # ./configure && make && make install/usr/local/nginxにいろいろ入っていればインストール成功です。
nginxを起動する
では、httpサーバとしてnginxを起動してみます。# /usr/local/nginx/sbin/nginxこれだけです。
nginxを停止する
停止する場合は# /usr/local/nginx/sbin/nginx -s stopと実行するだけです。
ネームバーチャルを設定する
ドメイン毎にドキュメントルートを変えたりしたかったので、ネームバーチャルを設定しました。設定ファイルは /usr/local/nginx/conf/nginx.conf です。
server { listen 80; server_name alpha.ytnobody.net; location / { root vhosts/alpha; index index.html; } } server { listen 80; server_name beta.ytnobody.net; location / { root vhosts/beta; index index.html; } }こんな感じの記述を http { ... } の中に書いてやります。
プロキシとして動作させる
バックエンドでstarmanとか動かしたいので、プロキシとして動作させてみました。nginx.confに以下のようなネームバーチャルを追加し、ネームバーチャルをまるごとプロキシとしました。
server { listen 80; server_name lab.ytnobody.net; location / { proxy_pass http://127.0.0.1:5000; } }
で、急ごしらえの動確用PSGIアプリを
sub { [ 200, [ 'Content-Type' => 'text/html' ], [ '<html><head><title>PLACK</title></head><body>PLACK!</body></html>' ] ]; };こんな感じででっち上げて、plackupで起こしてやります。
$ plackup ./hoge.plこれで、lab.ytnobody.netにアクセスすると、PSGIアプリにリクエストが流れます。
ロードバランシングさせる
さきほどのlab.ytnobody.netを改造して、ロードバランサとして設定してみます。upstream mybalancer { server www.google.com:80; server www.cpan.org:80; server www.yahoo.co.jp:80; } server { listen 80; server_name lab.ytnobody.net; location / { proxy_pass http://mybalancer; } }これだけで、upstreamのserver達にリクエストがバランシングされます。
フォアグラウンドで走らせて、daemontoolsに食わせやすくする
nginxをフォアグラウンドで動かすには、# /usr/local/nginx/sbin/nginx -g 'daemon off;'のように、グローバル指定子"daemon off;"を指定する必要があります。
しかし、これだけだとログがローテートされません。放っておくと、アホみたいなサイズになってしまいます。
これもdaemontoolsに任せてしまいたいので、どうにかログを標準出力に吐いておきたいところ。
そこで、/dev/stdoutにログを吐いてやるように設定したところ、期待通りの動作となりました。
server { listen 80; server_name lab.ytnobody.net; access_log /dev/stdout; location / { proxy_pass http://mybalancer; } }
さいごに
いままでnginx使ってなかった理由がわからない!!!!というほど、簡単に導入できました!!さようならapache!もう君には(よほどの事がない限り)世話にならないだろう!
0 件のコメント:
コメントを投稿