Debianでnginxをビルド&ヴァーチャルホストの設定

自分のメモもかねて大雑把にいきます。

nginxのビルド

まずビルドとか諸々に必要なものの用意から。

sudo apt-get install build-essential libpcre3 libpcre3 zlib1g zlib1g-dev openssl libssl-dev

次にnginxのソースコードを準備する。今回は最新の安定板を用意した。

mkdir src
cd src
wget http://nginx.org/download/nginx-1.2.2.tar.gz

そして、展開ィ!コンパイルぅ!

tar zxf nginx-1.2.2.tar.gz
cd nginx-1.2.2
./configure
make
sudo make install

で、コンパイルしていくんですがconfigureするときにオプションつけてあげると
パスとかモジュールのオンオフを設定できる。以下は.confの位置を指定してる。

./configure --conf-path=/etc/nginx/nginx.conf

パッケージ版は試してないのでどうなのかわからないけど、
自前でコンパイルした場合、基本的に

/usr/local/nginx

以下にに全部入れられるっぽいです。
パスの設定とか、モジュールのこと一通り書いてると本が一冊かけてしまうので、省略。
(というか本売ってます。)
今回、僕はその本の通りにコンパイルした。

./configure --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module

設定の内容は、ユーザー・グループの指定、
SSLモジュールとReal IPモジュールってのをオンにした。
ネットで検索かけると、user=nginxってしたりする例も見かけたんだけど、
深く考えないで、問題でたら直せばいいかくらいの感じで設定した。

で、configureを失敗することがあって必要なライブラリが足りないとか出てくる。
僕の場合「SSLの場所がわからん」ってエラーがでた。
パスを指定してるのに解決できなくて悩んだけど、
nginxのソース自体のバージョンを上げたらすんなりコンパイルできた。
モジュールをオンにすると必要なライブラリとかも変わるだろうから、注意するべきところだと思う。

あと、環境によって様々だから同じ事しても失敗することもあるとかないとか。(@さんに教えてもらいました。)
奥が深いね!

次ぎにinitスクリプトを書くなり拾ってくるなりする。
ネットで検索すれば出てきます。活用しましょう。

http://wiki.nginx.org/InitScriptsJa

そして、initスクリプトを配置したら

update-rc.d -f nginx defaults 

とかやって適切なランレベルでスクリプトが自動で実行されるようにしましょう。

バーチャルホストの設定
お名前でドメインとってるからDNS関連の設定はネットでやった。
肝心のnginxの設定。
僕はパスの設定してないから

/usr/local/nginx/conf/nginx.conf

にあった。
デフォルトである程度書いてあるし、バーチャルホストの部分のみ簡潔に説明。

http {
	server {
		listen 80;
		server_name test.com
		
		location {
			root html
			index index.html index.htm;
		}
	}

	server {
		listen 80;
		server_name hoge.test.com
		
		location {
			root /path/to/vitualhost
			index index.html index.htm;
		}
	}
}

こんな感じでホストごとにサーバーのブロックをつくるだけ。
インデントきもいかな...

ここには書いてないけど、SSLの設定はここが参考になりました。
http://dogmap.jp/2011/05/10/nginx-ssl/

感想

書くのめんどくさくなってきて最後の方が雑。
あと、書慣れてないから読み直すと日本語がおかしい。
知識があいまいなので、間違いあったら指摘していただけるとありがたいです。

最後に...
怖話のAndroidアプリでました!!!