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

ファイルアップロード・ダウンロードに関するシェルスクリプト

ファイルのアップロードやダウンロードに関するシェルスクリプトなんぞを。 地味ですが、以外に登場頻度は高いかと。 Contents1 FTP1.1 ダウンロード1.2 アップロード2 SCP2.1 アッ …

no image

journald

CentOS7では従来のsyslogデーモンと並行してjournaldというログ管理サービスがあります。 Contents1 コマンド一覧2 参考図書・リンク コマンド一覧 [crayon-6285b …

no image

SSLに関して(主にオレオレSSLの作成方法など)

Contents1 HTTPSとは1.1 概要説明1.2 SSL費用の違いについて2 オレオレSSL2.1 秘密鍵作成コマンド2.2 公開鍵作成コマンド2.3 オレオレSSL証明書の作成3 webサー …

no image

php-fpmトラブル(nginxが競合?)

php-fpmが急に停止になるトラブルがあったので、ちょっとメモ。 php-fpmを再起動しようとしても下記のようなエラーが・・・

p …

no image

docker-compose(CentOS7系やMySQLのオプションなど)

以前、docker-composeを使った記事は使ったのですが、 実際にCentOS7やMySQLを扱った時につまづいたことなどを。 Contents1 CentOS7系のメモ1.1 docker-c …

アーカイブ