しかし誰だって最初は素人、いきなり玄人になれるはずはないので、日々の経験が大事なんだと個人的には思っています。(作った仕組みで他人が迷惑をかけてしまわないよう考慮する必要はあると思います。)
前置きはさておき、webサーバのサブドメイン設定で躓き、なんとか解決出来たので、自分向け備忘録として残しておこうと思います。
お約束
他に詳しく書かれたサイトがありますので、そちらを参照したほうがいいと思います。このエントリーはあまり参考にならないかと...。
私はこの方法で自分のやりたいことが出来たということです・・・。バーチャルホストでサブドメインを設定するもサイトが表示されない
このサイトはnginxとapacheとを連携させて動かしています。nginxはリバースプロキシとして利用しています。 今取得しているドメインにサブドメインを設定して別のサイトを構築したいと思い、先だってムームードメインのDNS設定でサブドメインを作りました。で、先人の知恵を拝借すべくgooleで得た情報を元にnginx、apacheにそれぞれバーチャルホストを設定したものの、意図したとおりにはなりませんでした。意図しなかったというのは、
例えばサーバー名をkurumi.560days.com、ドキュメントルートを/var/www/kurumiと設定をしたときに、kurumi.560days.comにアクセスしてもkurumiディレクトリ内のコンテンツが表示されず、560days.comのトップページが表示されていたということす。
最初はDNSの浸透に時間がかかっているのかと思いましたが、nslookupで引けたのでwebサーバの設定を疑ったというわけです。
原因の切り分け
nginxとapache二つのwebサーバを起動しているのでどちらの設定に誤りがあるのか切り分けることにしました。いったんnginxを停止してapacheのみで動かし、バーチャルホストを設定してみたところ、kurumi.560days.comにアクセスしたときkurumiディレクトリ内のコンテンツが表示されました。どうやらnginxとapache間のバーチャルホストの設定に誤りがありそうだということがわかりあれこれ試行錯誤してみました。あまりに集中していたため、途中の過程を覚えていないのがアレですが、動いたときの設定を残しておきます。
やったこと
apacheのバーチャルホスト設定
/etc/httpd/conf/httpd.conf・ ・ Listen 8082 ・ ・ NameVirtualHost *:8082 ・ ・ ‹VirtualHost *:8082› ServerName kurumi.560days.com DocumentRoot /var/www/kurumi RPAFenable On RPAFsethostname On RPAFproxy_ips 127.0.0.1 10.0.0.1 RPAFheader X-Forwarded-For ‹/VirtualHost›
nginxのバーチャルホスト設定
/etc/nginx/conf.d/virtual.confserver { listen 80; server_name kurumi.560days.com; location ~ .*\.(htm|html|jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) { root /var/www/kurumi; index index.html; ssi on; break; } location / { proxy_pass http://127.0.0.1:8082; break; } }この設定が正しいかどうかはわかりませんがページを表示できています。しかしリンクがおかしかったので再度見直しました。
再設定
nginxの設定
/etc/nginx/nginx.conf例:main.560days.comとkurumi.560days.comの設定
upstream backends { server 127.0.0.1:8082; } server { listen 80; server_name main.560days.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_max_temp_file_size 0; location ~ .*\.(htm|html|jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) { root /var/www/main; index index.php; ssi on; break; } #proxy location / { proxy_pass http://backends; break; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name kurumi.560days.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_max_temp_file_size 0; location ~ .*\.(htm|html|jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) { root /var/www/kurumi; index index.php; ssi on; break; } #proxy location / { proxy_pass http://backends; break; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
nginxのバーチャルホスト設定
/etc/nginx/conf.d/virtual.confserver { listen 80; server_name kurumi.560days.com; location ~ .*\.(htm|html|jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) { root /var/www/kurumi; index index.html; ssi on; break; } location / { proxy_pass http://127.0.0.1:2222; break; } }リンクがおかしいのも直りましたがよくわかりません...。試行錯誤して修正したいと思います。