(1) Nginx入門(インストール~起動~ページ疎通確認まで)
(1-1) Nginxとは?
(1-2) Nginxの基本的な使い方
(1-2-1) インストール
(1-2-2) 起動
(1-2-3) 起動確認
(1-2-4) 再起動
(1-2-5) 設定ファイル
(1-2-6) 参考:デフォルトページの場所
(1-3) リバースプロキシの設定
(1) Nginx入門(インストール~起動~ページ疎通確認まで)
(1-1) Nginxとは?
(1-2) Nginxの基本的な使い方
ここからはNginxのインストールや起動といった、入門準備の手順を確認していきます。
(1-2-1) インストール
インストールはご自身のOSのパッケージマネージャーを使って行います。以下はCent OSやUbuntuの例です。
(例)CentOS 7の場合
sudo yum install nginx
(図121)①
↓ 依存関係の処理など
↓ インストールの実行
(例)Ubuntuの場合
apt-get install nginx
(1-2-2) 起動
起動は以下のコマンドで行います。
(例)CentOS 6以前(SystemV)
/etc/init.d/nginx start
systemctl start nginx.service
(図122)
(1-2-3) 起動確認
(方法1)
ブラウザから、先ほどNginxをインストールしたご自身のサーバにの「IPアドレス」または、ドメインの設定★をしている場合は「ドメイン名」でもアクセスが可能です。
http://[IPアドレス] http://[ドメイン名]
(図123)疎通テスト①:IPアドレス
(図123)疎通テスト②:ドメイン
もう1つの方法はサービス起動のステータス確認コマンドを使った方法です。下
/etc/init.d/nginx status
systemctl is-active nginx.service
(図123)
(1-2-4) 再起動
/etc/init.d/nginx restart
systemctl restart nginx.service
ちなみに、configファイルにエラーがある場合は起動に失敗します(起動エラーの場合はメッセージに「Fail」と表示される)。
(1-2-5) 設定ファイル
設定ファイルは以下のいずれかのディレクトリに配置されています。
/etc/nginx/nginx.conf /usr/local/etc/nginx/nginx.conf
または
/usr/local/nginx/conf/nginx.conf
(図125)①
(図125)②
confファイルの基本的な記述方法は以下です。「設定名」と「設定値」の後にセミコロンを追加します。
[設定名] [設定値]; (例) gzip on;
(1-2-6) 参考:デフォルトページの場所
参考として、上のデフォルトページとして表示されたCentOS 7のページのhtmlファイルは以下のディレクトリに格納されています。
/usr/share/doc/HTML
(図126)①
元々のファイルの代わりに、自身で作ったhtml等を配置すれば、そのページで疎通ができます。
(図126)疎通(IPアドレス)
(図126)疎通(ドメイン)
(1-3) リバースプロキシの設定
設定ファイルの「Virtual Host Configs」の欄に以下の設定を追記する事で、Nginxをリバースプロキシとして動作させる事ができます。
server { listen 443; server_name _; ssl on; ssl_certificate certificate-bundle.crt; ssl_certificate_key private-key.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { proxy_pass http://127.0.0.1:8080; } }
各設定項目の概要は以下の通りです。
(表)
listen 443; | Nginxに443ポートをリッスンさせる(外部からのアクセスに備え待機させる) |
server_name _ | 全てのドメインがこのserver{…}のブロックに該当する事を意味しています。 |
ssl on | NginxでSSLを有効化し、httpsで通信する事を意味します。 |
ssl_certificate [証明書のパス] | 証明書ファイルを指し示しています。[証明書のパス]には「ca-bundle.crt」や「certificate-bundle.crt」といった証明書のパスが入ります。
SSLの証明書の概要については、別記事にてご紹介していますので、もしよければご参照頂けたらと思います。 |
ssl_certificate_key | 証明書を発行するのに使用された「秘密鍵」(private key)を指し示しています。 |
ssl_protocols | 有効化されているSSLプロトコルを示しています。 (例) TLSv1 TLSv1.1 TLSv1.2; |
location / { … } | nginxに「/」からの全てのリクエストをWebサーバに転送するように指示しています。 具体的には「http://127.0.0.1:8080」、つまり自分自身の8080ポートへの転送を意味しています。「127.0.0.1」は「ループバックアドレス」と呼ばれ、意味合いについては以下で少しご紹介しています。 ⇒(参考3)ループバックアドレス |