CentOS7

Nginxインストール

firewalldの設定

firewall-cmdコマンドでウェブサーバーの待ち受けポートである80番に外部から接続できるように設定を追加します。

[root@localhost ~]# firewall-cmd --add-service=http --permanent
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# firewall-cmd --list-all ←設定確認

Nginx用レポジトリの設定

Nginx用レポジトリファイルの追加

[root@localhost ~]# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

enabled=1としてレポジトリを常に有効にしています。

Nginxインストール

[root@localhost ~]# yum -y install nginx

エラーの出力がなく”完了しました!”と表示されれば、Nginxのインストールは完了です。

Nginx起動の確認と自動起動設定

Nginxの起動

[root@localhost ~]# systemctl start nginx
[root@localhost ~]# systemctl enable nginx ←nginxの自動起動設定

エラーが出力されなければ、nginxは正常に起動しています。

ウェルカムページの表示確認

ここまでの手順でnginxパッケージに用意されたデフォルトで用意されているウェブページを表示することが出来ます。

ご自分の環境で利用されているウェブブラウザから、テスト用のページが表示できることを確認します。もしhttpdをインストールしたサーバーのIPアドレスが 192.168.1.7 の場合

http://192.168.1.7

をブラウザへ入力すると、以下のようなテスト用のウェルカムページが表示されます。

01.jpg

Webコンテンツ更新用ユーザーの作成

ユーザー作成

[root@localhost ~]# useradd -s /sbin/nologin www
[root@localhost ~]# passwd www

コンテンツ配置用ディレクトリの作成

Nginx構成はバーチャルホストを利用することを前提にします。アクセス先 URLに応じてディレクトリを分けて、各ディレクトリにコンテンツを配置する形になります。その為、コンテンツを配置するためのディレクトリを事前に2つ作成しておきます。

※本作業はバーチャルホストを追加する毎に必要になります。

コンテンツを配置用ディレクトリの場所

コンテンツはFTPを利用してアップロードを行うことを考えて、”/home/www/”以下にバーチャルホストのFQDNに合わせたディレクトリを作成し、その中に配置します。今回の構成ではドメイン名として”hoge.com”と”usage.com”を設定します。

ディレクトリの作成

ディレクトリの作成を行います。mkdirコマンドで作成します。

[root@localhost ~]# mkdir /home/www/hoge.com /home/www/usage.com

アクセス権の変更

[root@localhost ~]# chmod 755 /home/www

テスト用HTMLファイルの作成

作成したディレクトリに、テスト用のHTMLファイルを作成します。二つのドメインに対して、作成します。

hoge.com テスト用HTMLファイル

[root@localhost ~]# vi /home/www/hoge.com/index.html
<html>
<body>
hoge.com test page
</body>
</html>

作成後、ファイルを保存します。これで hoge.com 用ファイルの作成は完了です。

続いて、usage.com テスト用のHTMLファイルを作成します。

usage.com テスト用HTMLファイル

[root@localhost ~]# vi /home/www/usage.com/index.html
<html>
<body>
usage.com test page
</body>
</html>

パーミッションの変更

作成されたディレクトリは所有者がrootになっています。これをウェブサーバー用のユーザーである www に変更します。以下のように chown コマンド実行します。(-Rオプションはディレクトリに含まれる全てのファイル、ディレクトリの権限を変更します。)

[root@localhost ~]# chown -R www:www /home/www

バーチャルホスト管理用ディレクトリの作成

今回の構成ではNginxで複数のバーチャルホストを運用する形を想定しています。複数のバーチャルホストを運用するには、一つのconfファイルに列記していくことも可能ですが、数が多くなってくると管理が大変になります。ここでは管理を簡単にするために、ディレクトリを作成します。

管理用ディレクトリの構成

バーチャルホストを管理するためのディレクトリとして以下の二つを作成します。

sites-availableディレクトリには全てのバーチャルホスト用設定ファイルを保存します。sites-enabledディレクトリには有効にするバーチャルホストの設定ファイルに対してシンボリックリンクを設定していきます。

sites-enabledのシンボリックリンクが設定されているバーチャルホストが有効になるイメージです。

管理用ディレクトリの作成

mkdirコマンドで管理用ディレクトリを作成します。

[root@localhost ~]# mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled

作成後に確認します。lsコマンドでディレクトリのファイルを表示します。

[root@localhost ~]# ls -a /etc/nginx

Nginxの設定

Nginxを利用するにあたっての設定変更を説明していきます。設定の前提は以下のようになります。

この条件に合わせて設定を行っていきます。

nginx.confファイルの変更

Nginxの設定はNginx自体の設定を行うためのnginx.confファイルと、バーチャルホストを設定するためのdefault.confに分かれています。ファイルは”/etc/nginx/”以下に保存されています。まずはnginx.confの変更を行います。

nginx.confの編集前に、既存のファイルをバックアップしておきます。具体的には以下の手順でコピーを行います。

[root@localhost ~]# cd /etc/nginx/
[root@localhost nginx]# cp -p nginx.conf nginx.conf.org

バックアップの完了後、エディタで設定ファイルを開いて変更を行います。本環境ではOSの標準的なエディタである、viエディタを利用しています。

[root@localhost nginx]# vi nginx.conf

動作ユーザーの変更

userの設定を変更します。動作ユーザーの設定になります。

user www;

バージョンの非表示

http {
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;

バーチャルホスト用設定ファイルのinclude

有効になるバーチャルホスト用の設定ファイルをincludeするためにhttpディレクティブに設定を追加します。

include /etc/nginx/conf.d/*.conf;
include sites-enabled/*.conf;
}

gzip圧縮の有効化

コンテンツを配信する際にgzipを利用して圧縮を行い、サイズを小さくする機能を有効化します。多少ですがサイトの表示が早くなります。

gzip on;

長いバーチャルホスト名への対応

日本語ドメインなどで見られる長いバーチャルホスト名を設定すると、エラーになることがあります。その回避として以下の設定を行います。

gzipの記述の下辺りに以下の設定を追加します。128の部分はハッシュ化されたバーチャルホスト名のサイズになります。やや大きめを指定しています。

server_names_hash_bucket_size 128;

キープアライブのタイムアウト秒数を変更

デフォルトで設定されているkeepalive timeoutはやや長いため、変更します。65秒から30秒に変更しています。必要に応じて時間は調整してください。

keepalive_timeout 30;

nginx.confの確認

nginx.confの変更が完了できたら、設定ファイルに間違いや問題がないかを確認します。nginxに”-t”オプションを付けて実行することで設定ファイルの間違いをチェックできます。設定変更後には実行することをお勧めします。

以下のように実行します。

[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

バーチャルホスト用の設定ファイル作成

Nginx自体の設定は完了しましたので、続いて、バーチャルホスト用の設定ファイルを作成します。

設定ファイルとしてdefault.confが用意されていますが、これとは別にドメイン毎の設定ファイルを作成していきます。default.confはどのバーチャルホスト名にもマッチしない場合に表示されるホストになります。

default.confの移動

最初から用意されているdefault.confをバーチャルホスト用ディレクトリであるsites-availableへ移動します。default.confは”/etc/nginx/conf.d/”以下に入っています。以下の手順でファイルをコピーします。

[root@localhost ~]# mv /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/

バーチャルホスト hoge.com用の設定ファイル作成

一つ目のバーチャルホスト”hoge.com”用の設定ファイルを作成します。作成先はsites-availableディレクトリになりますので、viコマンドを以下のように実行します。尚、ファイル名は”ドメイン名”+拡張子”conf”という命名規則で作成します。

[root@localhost ~]# vi /etc/nginx/sites-available/hoge.conf

内容は以下のようになります。

server {
listen 80;
server_name hoge.com www.hoge.com;
access_log /var/log/nginx/hoge.com-access.log;
error_log /var/log/nginx/hoge.com-error.log;
root /home/www/hoge.com;

location / {
index index.html;
}
}

ファイルの中で変更が必要になる部分は以下の項目です。

上記の項目を運用する環境に合わせて変更します。必要に応じて変更後、ファイルを保存します。

バーチャルホスト usage.com用の設定ファイル作成

設定ファイルを作成します。作成する手順は基本的には同じです。viコマンドを以下のように実行します。

[root@localhost ~]# vi /etc/nginx/sites-available/usage.com.conf

ファイルの内容は以下のようになります。必要に応じて変更してください。

server {
listen 80;
server_name usage.com www.usage.com;
access_log /var/log/nginx/usage.com-access.log;
error_log /var/log/nginx/usage.com-error.log;
root /home/www/usage.com;

location / {
index index.html;
}
}

内容を確認して、問題なければファイルを保存します。

default.conf の修正

どのFQDNにもヒットしない場合はデフォルトのページが表示されしまうので、代表のサイトを表示するように変更する。

[root@localhost ~]# vi /etc/nginx/sites-available/default.conf
location / {
#root /usr/share/nginx/html; ←コメントアウト
root /home/www/hoge.com; ←追加
index index.html index.htm;
}

バーチャルホストの管理

設定したバーチャルホストを有効化するためには、sites-avilableディレクトリに作成した設定ファイルに対して、sites-enabledディレクトリにシンボリックリンクを作成する必要があります。バーチャルホストの有効化と無効化を説明します。

バーチャルホストの有効化

シンボリックリンクはlnコマンドで作成します。ここでは全てのバーチャルホストを有効にします。以下のようにlnコマンドを実行します。

[root@localhost ~]# ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.com.conf
[root@localhost ~]# ln -s /etc/nginx/sites-available/hoge.com.conf /etc/nginx/sites-enabled/hoge.com.conf
[root@localhost ~]# ln -s /etc/nginx/sites-available/usage.com.conf /etc/nginx/sites-enabled/usage.com.conf

エラーが出力されなければ、シンボリックリンクは正常に作成されています。

バーチャルホストの無効化

有効化したバーチャルホストを無効化する場合には、sites-enalbedディレクトリに設定されているシンボリックリンクを削除します。

削除はunlinkコマンドを利用します。例えばusage.com.confを無効化したい場合は以下のようにunlinkコマンドを実行します。

[root@localhost ~]# unlink /etc/nginx/sites-enabled/usage.com.conf

設定ファイルの確認

設定ファイルの作成と配置が完了したら、間違いや問題がないかを確認します。nginxに”-t”オプションを付けて実行することで設定ファイルの間違いをチェックできます。設定変更後には実行することをお勧めします。

[root@localhost ~] nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

上記のように、”test is successful”と表示されていればファイルには問題ありません。

設定の有効化

シンボリックリンクでの管理について、有効化と無効化の何れかを行った場合には設定ファイルの再読み込みとして、Nginxの再起動が必要になります。systemctlコマンドでNginxを再起動します。

[root@localhost ~]# systemctl restart nginx

Nginxの動作テスト

ここまででNginxのバーチャルホスト設定が完了しましたので、動作テストを行います。コマンドでの確認もできますが、ブラウザからのほうが早いと思いますので、ブラウザを利用して確認を行います。

バーチャルホストの動作確認には、DNSによる名前引き(正引き:ドメイン名からIPが引ける)が設定されている必要があります。もしDNSの名前引きが利用できない場合は、利用しているコンピューターのhostsファイルに、直接、IPとホスト名を記載することでも対応できます。

hoge.comの確認

ブラウザから http://hoge.com を表示します。

これで、バーチャルホスト”hoge.com”の確認は完了です。

usage.comの確認

ブラウザから http://usage.com を表示します。

これでバーチャルホスト”usage.com”の確認は完了です。

両方のサイトが表示されたことで、バーチャルホストが正常に動作していることが確認できました。これでNginxと各バーチャルホストの確認が完了です。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS