skillup

技術ブログ

サーバー・ネットワーク

nginxによる一般的なwebサーバーの構築

投稿日:2016年12月9日 更新日:

今回は一般的なwebサーバーでよく利用するnginxの基本機能を紹介します。

サーバー・インフラ徹底攻略の3章になります。

バーチャルホストを利用する

1つのWebサーバーで複数のwebサイトを運用する機能です。

バーチャルホストを定義するにはserverディレクティブで区切った部分が1つのバーチャルホストとしてみなされ、中にさまざまな設定を記述することによりそのホストに関する設定を行うことができます。

バーチャルホストの説明

小悪魔女子大生のサーバエンジニア日記 バーチャルホストとは?

serverディレクティブを用いserverコンテキストを複数定義することで複数のバーチャルホストを定義できます。

振り分けるには次の2通りの方法があります。

  • IPアドレスベース
  • ネームベース

IPアドレスベースのバーチャルホスト

IPアドレスによりアクセス先を変更する方法です。listenディレクティブを利用します。

listenディレクティブはserverコンテキスト内で使用し、バーチャルホストがリクエストを受け付けるIPアドレスおよびポート番号の指定を行うためのディレクティブで下記のように指定します。

IPアドレスで複数のバーチャルホストを定義する場合は、次のようにlistenディレクティブで別々のアドレスを指定します。

ネームベースのバーチャルホスト

ホスト名によりアクセス先を切り替得る方法です。どちらかというとこちらのほうが一般的かと思います。

またスペースで区切ることにより複数のホスト名を指定したり、ワイルドカードを利用して複数のホスト名とマッチさせることができます。

複数指定

ワイルドカード指定

複数指定

またスペースで区切る代わりに複数のserver_nameディレクティブを使用して設定することもできます。一般的にはserver_nameごとに設定ファイルを記述し,conf.dの下に置いておくパターンが多いでしょう。

正規表現

さらに正規表現による指定を行うこともできます。 正規表現による指定を利用する場合は値の先頭に~をつける必要があります。

連番がついている大量のホスト名を処理するときなどに便利です。

アクセス制御

nginxには受け付けたリクエストに合わせて適用する設定を柔軟に切り替える機能が豊富に用意されています。

それらの機能の一部を紹介します。

locationディレクティブ

リクエストURIのパスを指定した条件と照らし合わせ、条件にマッチした場合は設定を適用するといった機能です。

たとえば下記のように記述した場合、URIのパスがmemberに前方一致した場合に認証をかける設定です。

また下記のように記述した場合、パスの末尾が.css .js .htmlのいずれかの場合はgzip圧縮を行うこととなります。

-サーバー・ネットワーク
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

cakePHPでのサブディレクトリ(apache)

apache使用時、cakePHP2系をサブディレクトリで使いたいときの運用法に関して。通所通りですとファイルにアクセスできないので、URLのリライトをうまくしないといけません。下記に設定例をかきます …

no image

SQSのキュー登録とworkコマンドに関して

SQSでのキューの登録に関して以前やりましたが、再度扱うことがあったので、調査を。 リンク SQSについて Queueの登録と実際の処理に関して Contents1 キューの登録2 キューの監視 キュ …

no image

set,ifディレクティブ,変数に関して

これまで基本的なnginxの設定についてみてきましたが、今回はset,ifディレクティブについてみていきます。 Contents1 変数とset2 error_page3 名前付きlocation 変 …

no image

メモリー不足でのスワップ割り当て

先日、あるサーバーでcomposerをinstallしようとしたところ、 The following exception is caused by a lack of memory or swap, …

no image

障害調査フロー

実務でサーバーの障害が発生した時のフローなどをメモしおこうかと。 行ってしまうと「ログに始まり、ログにおわる」といった感じでしょうか。 サーバーエンジニアの方の作業をみてたんですが、基本的にはプログラ …

アーカイブ