nginx1.2の設定

2012/05/30 07:40:33
おはようございます!Noranekoだぜぇ。

最近、web業界でnginxなる物が一部で流行ってるようですね。
業務ではIIS、apacheと使ってきましたが、ここにきていろんな人からこのnginxの話をされました。

てことで情弱な私も使ってみたお^ω^


yumさんでnginx1.2をインスコ。


通常のインスコだと設定ファイルは、


/etc/nginx/
/etc/nginx/conf.d


の中にあり、


/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf


この2つがメインファイルとなります。


今回はヴァーチャルホストとベーシック認証についてもやっちゃいましょう。

※ヴァーチャルホストとは、日本語で直訳すると仮想上のホストと言うことです。現在歌舞伎町のホストクラブでは人間を雇わず、CGが女性客の相手をしてくれます。CGなので自分の好みの男性を作ることができ、AIも搭載されてるので会話も可能です。


てことで簡潔に言うとconf.dの中に、***.confと言うファイルを置くと読んでくれるので、default.confはさわらずに、ドメイン名+.confというファイルを置いて管理するのが良いと思います。

例えばwilddaro.comteheperoo.comと言うドメインを持っていて、それぞれのヴァーチャルホストをnginx上に持つとする場合、conf.dの中で、


cp default.conf wilddaro.com.conf


とdefault.confをコピーしてファイルを置きましょう。

ここまでで90%終了です!

やったねタエちゃん!ヴァーチャルホストが増えるよ!


では、wilddaro.com.confの編集を行いましょう~。
ついでにphpの設定も行っておきましょう



server {
listen 80 default_server;
server_name wilddaro.com;

#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;

location / {
root /wilddaro.com/html;
index index.html index.php;
}

location /himitsu/ {
alias /wilddaro.com/html/himitsu/;
index index.html index.php;
auth_basic "wilddaro?";
auth_basic_user_file /wilddaro.com/html/himitsu/.htpasswd;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ ^/himitsu/(.*\.php)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /wilddaro.com/html/himitsu/$1;
include fastcgi_params;
auth_basic "wilddaro?";
auth_basic_user_file /wilddaro.com/html/himitsu/.htpasswd;
}

location ~ \.php$ {
root /wilddaro.com/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}


鉄人自らご説明致します。
wilddaro.comのパスを/wilddaro.com/html/をドキュメントルートにした時の設定です。お好みで、パスをお好みで、/boot/sbin/tmp等のワイルドなところに設置しても構いません^ω^

2行目
default_serverを付ける事により、逆引きした時のホストとして表示できます。つまり、任意のconfファイルにdefault_serverを付けることにより、IPでのアクセスとドメインでのアクセスを切り分けることができます。

3行目
ヴァーチャルホストのドメイン名をここに記述します。

8~11行目
location /とすることで、wilddaro.comのドキュメントルートのパスとindexファイルの設定を行っています。

13~18行目
http://wilddaro.com/himitsu/以下にベーシック認証をかけています。
ここの13行目なのですが、/で閉じないと、himitsu.htmlというファイルがあった場合に、アクセスした際にベーシック認証が発生してしまいます。16行目のauth_basicはメッセージ、17行目のauth_basic_user_fileがユーザ・パスワードファイルです。

37~44行目と46~52行目はphpの設定ですが、ここで結構はまりました。
まず13~18行目でベーシック認証をかけたつもりでも、
http://wilddaro.com/himitsu/***.php
を叩くとベーシック認証がかかってない状態になっています。

う~ん、locationの中でphpのロジックをネストさせて書いてる人もいたりしますね。
自分はちょっと分けて書きたかったので、こういう風にしてます。
あと注意点としては、先に46行目を書くと37行目のロジックが通らなくなってしまいます。

これはちょっと困った問題で、例えば/abc/def/ghi/というディレクトリがあってghi/にベーシック認証をかけて、さらにdef/にも認証をかけたい場合、
先にghiのロジックを書き、次にdefのロジックを書かないと、先にマッチした方のみ処理が行われるみたいです。

自分の書き方がまずいのかもしれませんが、オレ流としての設定なので、他のもっとすっきりした書き方や有名な人の設定パクッた方がいいお^ω^

42、43行目でhttp://wilddaro.com/himitsu/以下のphpにアクセスがあった時にベーシック認証をかけるようにしています。また、37行目を性器正規表現にして、40行目に$1としてファイル名を渡しています。

57~59行目
.htpasswdファイルが見られちゃうと恥ずかしいので、コメントを取っちゃいます!
ワイルドに行きたい人は、ここはコメントはずさないで大丈夫です。

とまぁこんな感じでファイルを設定して、nginxをrestartして、ドメインを叩いて確認してみて下さい。てかwebサーバ設定しても、Aレコードちゃんと登録しなきゃ見れませんので、先に登録してからnginxの設定した方がよろしいでございます。

あと余談ですが、nginxでphp-fpmを使う際は5.3以上なのですが、
設定した後にサイトを見てて、エラー吐きまくりのページがありました。
ereg系とかを使ってると出まくります。

詳細はこちらにのっております。
http://php.net/manual/ja/migration53.deprecated.php


pregにしたったわ!






参考になった人は是非、いいねボタンを押して下さいね^ω^


















そんなもんついてねーけどな!







気に入ったら押してね
  ブログランキング・にほんブログ村へ




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web
コメント


お名前*

Email Address

URL

コメント*



BLOG内検索
<< 2024/11 >>
Sun Mon Tue Wed Thu Fri Sat
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
<< 過去ログ >>