インストール - Nginx(RHEL)
提供: MochiuWiki : SUSE, EC, PCB
概要
NginXとは、Apacheと並ぶWebサーバソフトウェアの1つであり、処理速度や機能面で注目を集めている。
NginXのメリットを、以下に示す。
- 高速である。
- 大量処理が得意である。
- Webサイトの利用を向上させる機能が豊富である。
- 設定が容易である。
Webサーバに同時に複数のアクセスがあった場合、下表に示すように動作の違いがある。
| Apache 2 | NginX | |
|---|---|---|
| 同時・複数アクセスへの対処方法 | 1アクセスに対して、1つの対応 | 複数のアクセスに対して、1つの対応にまとまる |
| アクセス急増時のサーバへの負荷 | 一気に負荷が増す | アクセスに比例して負荷は急激に増えない |
| その結果のWebサーバの挙動 | 動作が遅くなり、ダウンしやすくなる | 処理速度を維持して、ダウンしにくい |
例えば、Webサーバの負担を軽くして処理速度を上げる手段として、リバースプロキシやロードバランサー等があり、これらを実現する場合、Nginxが向いている。
NginXのデメリットを、以下に示す。
- 大量の動的コンテンツの処理に不向き
- 一般的には、大量の動的コンテンツの公開(動画を中心としたWebサイト等)には向かないことがNginXのデメリットとして挙げられる。
- ただし、比較的小規模のWebサイトを運営する場合は、それほど神経質にならなくてもよい。
- 機能追加のしやすさ
- 専用のモジュールを追加することにより、Nginxも機能を拡張することができる。
- ただし、Apacheの方が、実装方法について比較的充実し、情報が豊富でわかりやすい。
- Apache モジュール一覧
- https://httpd.apache.org/docs/trunk/ja/mod/
- NGINX 3rd Party Modules
- https://www.nginx.com/resources/wiki/modules/
- 初心者向けの設定情報の少なさ
- 設定等の情報が少ない。
| 参考書 | |||
|---|---|---|---|
nginx実践ガイド IT技術者のための現場ノウハウ |
nginx実践入門 高速/安定稼働を実現する構築と運用のテクニック |
Nginx ポケットリファレンス |
Nginx HTTP Server Nginxを利用して、高速なページ配信を実現する |
リポジトリの設定
リポジトリを追加するので、nginx.repoファイルを作成する。
sudo nano /etc/yum.repos.d/nginx.repo
上記で作成したnginx.repoファイルに以下の内容を書き込み保存する。
[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0 enabled=1
インストールと起動
以下のコマンドを入力して、Nginxをインストールする。
sudo yum install nginx
インストールしたNginxのバージョンを確認する。
nginx -v
自動起動設定とNginxの起動を行う。
sudo systemctl enable nginx sudo systemctl start nginx
デフォルトページの表示の確認をする。
http://CentOSのコンピュータ名/
上記のindex.htmlのデフォルトのパス
/usr/share/nginx/html/index.html
Nginxの設定ファイルのパス
/etc/nginx/conf.d/default.conf
簡単なリバースプロキシ
/etc/nginx/conf.d 以下に XXX.confという命名でファイルを作成する。
ココでは server.conf とし、80 番で受けたリクエストを 8000 番に転送する。
sudo nano /etc/nginx/conf.d/server.conf
server {
listen 80;
# アクセス可能なIPアドレスもしくはドメイン
server_name hogehoge.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;
location / {
proxy_pass http://localhost:8000;
}
}
Nginxの基本コマンド
起動
sudo systemctl start nginx
停止
sudo systemctl stop nginx
再起動
sudo systemctl restart nginx
再起動しても設定ファイルが反映されない場合
sudo nginx -s reload
状態の確認
sudo systemctl status nginx