Hatena::ブログ(Diary)

新卒インフラエンジニア2年目 このページをアンテナに追加 RSSフィード Twitter

2010-10-19 Webサーバソフトウェアnginxの導入まで

Webサーバソフトウェアnginxの導入まで

軽量で高速と言われているnginxを試してみました。

OSはCent64bitです。

試してみようと思った経緯

Webサーバを構築しようと思った時、殆どの方はApacheを無意識のうちに選んでいると思います。

Apacheは稼働実績も多く、情報も豊富にあるので最良の選択だと思います。

そこで、ひねくれ者の僕はApacheって本当に最良の選択なの?っという疑問が生まれました。


Webサーバソフトウェアの種類

では、現在Webサーバソフトウェアの選択肢として何があるのか?

僕がWebサーバソフトウェアとして見つけることができたのは以下の3つです。

  1. Apache
  2. nginx
  3. perlbal

今回はnginxを試してみました。



インストール

不要なソフトウェアモジュールインストールされるのを防ぐために、基本的に全てソースからインストールを行います。

ソースからのインストールは、ソフトウェア管理やアンインストールが不便ですので、これらを管理できるpacoなどの利用をお勧めします。

http://d.hatena.ne.jp/koujirou6218/20100927#1285740277


nginx公式サイトから安定版をダウンロードしてきます。

現在はnginx-0.8.53


解凍後、特にオプションなしでconfigureを実行します。

すると、以下のようなエラーがでました。

./configure: error: the HTTP rewrite module requires the PCRE library.

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

どうやら、PCRE libraryがないようです。

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/:title=PCRE最新版]をダウンロードします。

現在はpcre-8.10.tar.gz

ダウンロード解凍してください。

今度は、先ほど解凍したPCREを指定してconfigureします。

./configure --with-pcre=/home/user/work/pcre-8.10

エラーがないので、そのままmake、make installしてください。

/usr/local/nginx/conf/nginx.confを編集します。

設定内容はApacheとよく似ているのでApacheの設定を行った事がある人は簡単にできると思います。

編集に関しては以下のWikiを参考しました。

http://viz.is-a-geek.com/~viz/cw/index.php?nginx


pid logs/nginx.pid; #コメントアウトを外す


location / {

root /usr/local/nginx/html; #DocumentRootに該当する部分

index index.html index.htm; #Indexesに該当する部分

}

とりあえず、上記の設定を行えば動きます。

起動方法は/sbin内のnginxを実行します。

自動起動に関しては先ほど紹介したURL内に自動起動スクリプトがあるので、そちらを配置する必要があります。

起動テスト

./nginx -t

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

configuration file /usr/local/nginx/conf/nginx.conf test is successful

エラーがなければOKです。

起動

./nginx

ブラウザからアクセスするとWelcome to nginx!が表示されればOKです。

ヘッダーもnginxになっています。

200 OK

Date: Thu, 07 Oct 2010 20:52:01 GMT

Content-Length: 151

Last-Modified: Thu, 07 Oct 2010 18:09:44 GMT

Server: nginx/0.8.53

Content-Type: text/html

Accept-Ranges: bytes



ログファイル

デフォルトの設定であれば/usr/local/nginx/logsに出力されています。

access.log

192.168.0.1 - - [08/Oct/2010:04:21:05 +0900] "GET / HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3"

192.168.0.1 - - [08/Oct/2010:04:21:06 +0900] "GET /favicon.ico HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3"

192.168.0.1 - - [08/Oct/2010:05:07:49 +0900] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3"

192.168.0.1 - - [08/Oct/2010:05:07:50 +0900] "GET /favicon.ico HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3"

192.168.0.1 - - [08/Oct/2010:05:52:01 +0900] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3"


error.log

2010/10/08 04:21:06 [error] 5760#0: *1 open() "/usr/local/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.0.128"

2010/10/08 05:07:50 [error] 5760#0: *2 open() "/usr/local/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.0.128"

アクセスログをカスタムするのはできるのか不明です。



今後すること

Apacheとのパフォーマンス比較

PHP導入

カスタムログの方法

perlbalとnginxとApacheの比較

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/koujirou6218/20101019/1287479177