Opensourcetechブログ

OpensourcetechによるNGINX/Kubernetes/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

Webサーバのバーチャルホスト設定(nginx編)

こんにちは、鯨井貴博@opensourcetechです。

 

本日は、Virtualbox上の仮想PCで動いでいるCentOS6.6(64ビット)を使って、

Nginxのバーチャルホストをやってみようと思います。

ちなみに、Nginxのバージョンは本日時点で最新である1.7.10を使用しました。

 

uname -r & cat /etc/redhat-releaseでOS情報が確認出来ます。

f:id:opensourcetech:20150302141054p:plain

 

yumでNginxをインストール出来るようにする為、

/etc/yum.repos.dにレポジトリ情報を追加します。

cd /etc/yum.repos.d

vi nginx.repo

 

nginx.repoの内容

-------

 [nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/6/$basearch
gpgcheck=0
enabled=1

f:id:opensourcetech:20150302141058p:plain

 

そして、nginxをyumでインストール。

yum install nginx

f:id:opensourcetech:20150302141101p:plain

f:id:opensourcetech:20150302141105p:plain

 

続いて、バーチャルホストの設定を行います。

設定ファイルは、/etc/nginx/conf.dディレクトリ内に作成します。

www.test.local用に、test.conf

www.example.local用に、example.conf

www.sample.local用に、sample.confを作成します。

f:id:opensourcetech:20150302141110p:plain

 

 

それぞれのファイルは以下のようになっており、

違いはserverブロックのserver_nameと、

locationブロックのrootになります。

 

test.conf

-------

server {

       server_name www.test.local;

       location / {

                       root /usr/share/nginx/test;

f:id:opensourcetech:20150302141114p:plain

example.conf

-------

server {

       server_name www.example.local;

       location / {

                       root /usr/share/nginx/example;

f:id:opensourcetech:20150302141117p:plain

sample.conf

-------

server {

       server_name www.sample.local;

       location / {

                       root /usr/share/nginx/sample;

f:id:opensourcetech:20150302141121p:plain

 

そして、それぞれのドキュメントディレクトリ(root設定の場所)を作成の上、

その中にindex.htmlを作成します。

f:id:opensourcetech:20150302141129p:plain

 

その後、Nginxの起動。

service nginx start

また、netstat -tan | grep 80ps aux | grep nginxで起動確認もしておきます。

f:id:opensourcetech:20150302141133p:plain

 

また、必要に応じてiptablesの設定も行います。

iptables -I INPUT 5 -p tcp --dport 80 -j ACCEPT

iptables -L --line-numbers

f:id:opensourcetech:20150302141136p:plain

 

あとは、各ホスト名に対する名前解決がクライアントで出来れば、

以下のようにそれぞれのWebページ(index.html)が表示されます。

f:id:opensourcetech:20150302141139p:plain

f:id:opensourcetech:20150302141142p:plain

f:id:opensourcetech:20150302141145p:plain

 

なお、該当するホスト名ではないものでアクセスがあった場合は、

nginxが一番最初に読み込んだ設定のホストが使用されます。

 

つまり今回の設定では/etc/nginx/conf.dには以下のような設定ファイルがあり、

アルファベット順でいくと「default.conf」が一番最初になるので、

その内容が使用されます。

f:id:opensourcetech:20150302171751p:plain

 

特定のホストを設定したい場合は、

listenに「default_server」と追加してやればOKです。

f:id:opensourcetech:20150302141151p:plain

 

 

余談ではありますが、

バーチャルホストでどのホスト名に対するアクセスかは、

クライアントからのアクセス情報に含まれるHostヘッダーの情報が使用されます。

f:id:opensourcetech:20150302141220p:plain

 

 

 

にほんブログ村 IT技術ブログ Linuxへ
Linux

にほんブログ村 IT技術ブログ オープンソースへ
オープンソース

Opensourcetech by Takahiro Kujirai