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

inotifyによる検知

以前、pynotifyというpythonの検知プログラムを書きましたが、元々はinotifyというLinux上のパッケージのライブラリが元になっています。 以前調べたリンク 監視検知処理に関して 実務 …

no image

clamAV

ウイルスソフトclamAVのインストールと使用法について Contents1 インストール1.1 CentOS61.2 CentOS72 スキャン実行の設定に関して インストール CentOS6 [c …

no image

メール送信に関して その2 メールメッセージのデータ形式

前回に引き続き、メールのメッセージ構造について書きたいと思います。 Contents1 大まかな構造2 ヘッダ部2.1 メールアドレス2.2 From/Sender/Reply-To2.3 To/Cc …

no image

sourceコマンドに関して(Linuxサーバー&MySQL)

Linux上ではコマンドをテキストファイルに記述して、

と入力すると命令を実行してくれます。 シェルスクリプトよりもお手軽に実行できる …

no image

ネットワークコマンド

ネットワークのコマンドはping以外ほとんど知らないんですけど、それ以外に最近少し覚えたネットワークコマンドなどについて。 適切な使い方などはまだようわかっとらんです・・・ Contents1 net …