Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Nginx

Nginx入門(インストール~起動~ページ疎通確認まで)

投稿日:

<目次>

(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とは?

Nginx」は元々「c10k問題」を対処するために作られた「Webサーバ」です(Webページを保持・処理してユーザに届ける役割を果たすサーバ)。
参考:Nginxの概要・アーキテクチャ・用途など
 
「c10k問題」というのは、ネットワークソケット(※注1)が大量の同時ユーザ接続に対応できるようにどう最適化するか?という問題です。10kは「10000万人」という意味です(k=1000なので10*1000=10000)。
 
NginxはWebページを高速で提供できますが、それ以外にも多く用途で使う事ができます。代表的なのが「リバースプロキシ」として他のサーバの前面に立たせる事もできます。
 
(Nginxの主な用途例)
①リバースプロキシ
②ロードバランス(負荷分散)
③動画の配信など(streaming media)
④コンテンツのキャッシュ
 
(※注1)
ネットワークのノード越しにデータ送受信のエンドポイントとして機能する、ネットワーク内のソフトウェア構造です。代表的な例として、PCに付いている「LANケーブルのポート」等があります。
 

(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
 
(例)CentOS 7以降(systemd) 

systemctl start nginx.service

(図122)

目次にもどる

(1-2-3) 起動確認

(方法1)
ブラウザから、先ほどNginxをインストールしたご自身のサーバにの「IPアドレス」または、ドメインの設定★をしている場合は「ドメイン名」でもアクセスが可能です。

http://[IPアドレス]
http://[ドメイン名]

(図123)疎通テスト①:IPアドレス

(図123)疎通テスト②:ドメイン

(方法2)
もう1つの方法はサービス起動のステータス確認コマンドを使った方法です。下

(例)CentOS 6以前(SystemV

/etc/init.d/nginx status
 
(例)CentOS 7以降(systemd) 

systemctl is-active nginx.service

(図123)

目次にもどる

(1-2-4) 再起動

configファイルに変更を加えた際には、必ず再起動が必要となります。再起動は次のコマンドで行います。
 
(例)CentOS 6以前(SystemV
/etc/init.d/nginx restart
 
(例)CentOS 7以降(systemd

systemctl restart nginx.service
(図124)

ちなみに、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の証明書の概要については、別記事にてご紹介していますので、もしよければご参照頂けたらと思います。
⇒(参考1)SSLとは?を簡単に
⇒(参考2)SSLのEV・OV・DVの違い

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)ループバックアドレス

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Nginx

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

ApacheとNginxの違いやそれぞれの特徴について

<目次> (1) ApacheとNginxの違いやそれぞれの特徴について  (1-1) Apacheとは?  (1-2) Nginxとは?  (1-3) Nginxのアーキテクチャについて  (1-4 …

  • English (United States)
  • 日本語
Top