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

ポート解放(CentOS7)

新サーバー構築をしていたときにwebサーバーとしてnginxを立てましたが、外部から接続ができません。 500エラーすら吐かれず、ログも残っていません。 こんな時はホスト自体にアクセスが届いていない可 …

no image

linuxでのherokuのインストール&パスの通し方

linuxでのherokuのインストールやパスの通し方について 原則としてruby入ってないとダメっぽいです。(しかもruby1.8系だと2016年6月現在エラーが出ますので最新バージョンをインストー …

no image

メールの文字化け対策

メールの文字コードに関して、色々ごまかしながらやってましたが真面目に取り組む必要があり、ここでメモ。 Contents1 前提条件2 ヘッダー部分3 メール本文3.1 Content-Transfer …

no image

システム監視の基礎

システム監視のルールがほとんどないので、ちょっと勉強中です。 Contents1 危険率の判定2 参考文献 危険率の判定 今まで一番知りたかったことがこれなんですね。例えばシステムに負荷がかかっている …

no image

ansibleでのインストール

ansibleについてのメモなど。 Contents1 ansibleって何?2 インストール前準備3 ansibleインストール4 SSH鍵登録5 具体的なソフトウェアのインストール6 参考リンク& …