nginx入門|簡単インストール方法と設定を詳しく解説

ここでは、nginxのインストール方法についてご紹介致します。

CentOSなどRedhat系でのインストール方法と設定になります。

と、その前にnginx(エンジンエックス)をよく知らない方に説明すると、nginxはwebサーバーのミドルソフトウェアです。

メジャーなwebサーバーと言えば、apache、IISなどがありますが、nginxの一番の特徴はリバースプロキシの機能があることです。

ちなみに、このリバースプロキシとは、サーバーの手前に設定してクライアントからの接続を複数のwebサーバーなどを振り分ける働きです。

言わばロードバランサー的な働きをすることです。ですので、webサーバーの負荷を分散したり、また、webサーバーを停止することなくメンテナンスをすることができたりと大変便利な機能なんです(^^♪

nginx入門|簡単インストール方法と設定を詳しく解説

初めてnginxを使用する入門の方から少しご存知の方に向けた内容となっております。

OS/Middleware Version
CentOS 7.6.1810 (x86 64bit)
nginx 1.15.7

nginx入門|簡単インストール方法と設定を詳しく解説

1-1. nginx用のレポジトリー「nginx.repo」を/etc/yum.repos.dフォルダーの下に作成する

#vi /etc/yum.repos.d/nginx.repo
↓↓↓nginx用のレポジトリーファイルnginx.repoを作成し以下を入力↓↓↓

~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
~~~~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~~~~

 

1-2. nginxをインストール

#yum install nginx

Complete!を確認する

 

1-3. nginx起動・再起動・ステータス確認

# systemctl start nginx ← 起動
# systemctl reload nginx ← 再起動(userへの影響ナシ
# systemctl status nginx ← ステータス確認

 

1-4. 設定

nginxの基本的なconfigurationです。設定に必要なファイルはサーバー名毎に定義するファイルとバックエンド側の処理が定義されたupstream.confの2種類です。

[設定条件]
今回設定する条件は、http(port#80)で着弾したアクセスをhttps(port#443)へリダイレクト(301)し、バックエンドサーバーへ接続をします。https(port#443)で来た接続はそのままバックエンドサーバーへ接続をします。

※リダイレクト(301)とは、httpで通信を行う際のステータスコードの一種であり、特定のページから別のページへ転送させる際のステータスコードになります。このリダイレクトには301と302の2種類のステータスコードがあります。301は恒久的な転送を意味しており、302は一時的な転送を意味しています。ちなみに、httpでホームページなどをwebサーバーから正常にGETできた場合のステータスコードは200です。301のコードをもらったパソコンのブラウザーは、その転送先のページが表示されます。その際、ブラウザーのアドレスバーには転送先のURLが表示されます。

nginx入門|簡単インストール方法と設定を詳しく解説

ファイル名:/etc/nginx/conf.d/example.jp.conf
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

server {
listen 443 ssl ;

server_name example.jp;

access_log /var/log/nginx/example.jp_access.log main;
ssl_certificate /cert/example.jp/example.cer;
ssl_certificate_key /cert/example.jp/example.key;

proxy_http_version 1.1;
proxy_set_header Connection “”;
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_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;

# ELB X-Forwarded-For Settings
set_real_ip_from 10.1.1.0/24;
real_ip_header X-Forwarded-For;

location / {
proxy_pass https://example-furiwake;
}

}

server {
listen 80;

server_name example.jp;

access_log /var/log/nginx/example.jp_access.log main;

proxy_http_version 1.1;
proxy_set_header Connection “”;
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_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;

set_real_ip_from 10.1.1.0/24;
real_ip_header X-Forwarded-For;

location / {
rewrite ^(.*)$ https://example.jp$1 permanent;
proxy_pass https://example-furiwake;
}

}
~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~

permanent 恒久的なリダイレクトをするときに使用します。HTTPのステータスコードは「301」を返します。
redirect 一時的なリダイレクトをするときに使用します。HTTPのステータスコードは「302」を返します。

 

 

ファイル名:/etc/nginx/conf.d/upstream.confの設定内容
~~~~~~~~~~~~~~~ ここから ~~~~~~~~~~~~~~~
upstream example-furiwake {
keepalive 256;
server 192.168.1.154:443 max_fails=0;
server 192.168.1.155:443 max_fails=0;
}
~~~~~~~~~~~~~~~ ここまで ~~~~~~~~~~~~~~~
※max_fails=0は、サーバーとのヘルスチェックを無効にしている
※keepalive connections数

 

1-5. 文法チェック
再起動の前に文法チェックをします。文法に誤りがあると行番号を表示してエラーがあることを教えてくれます。

# nginx -t   ← 文法チェック。サービスに影響を与えません。
エラーが無くなったらnginxを再起動しましょう。

 

postgresqlインストールとヴァージョンアップ方法を解説

ここでは、現在、稼働しているpostgresql version 9.4.10 からデーターをdump(出力)し、別サーバーにインストールされているpostgresql 11.3 へそのデーターを移行(restore)するヴァージョンアップ方法と、postgresqlのインストール方法を詳しくご紹介致します。

各OS/Middlewareのヴァージョンは以下のとおりです。

OS/Middleware Version
CentOS 7.6.1810 (x86 64bit)
旧postgresql 9.4.10
新postgresql 11.3
php 7.3.5
apach 2.4.6

また、サーバーのIPアドレスとポート情報は以下のとおりとなります(仮)。

  IPアドレス port番号
webサーバー 192.168.1.1 8080
postgresql 9.4.10 が稼働している旧DBサーバー(移行元) 192.168.2.1 5432
postgresql 11.3 が稼働している新DBサーバー(移行先) 192.168.3.1 5432

postgresqlインストールとヴァージョンアップ方法を解説

事前確認作業

1-1. centOSのヴァージョン確認、および存在確認

#cat /etc/redhat-release

(例)CentOS Linux release 7.6.1810 (Core) などの情報を確認することができます。

 

1-2. phpのヴァージョン確認、および存在確認

#php -v
#rpm -qa | grep php

※何も表示されない場合は未インストール。

 

1-3. apacheのヴァージョン確認、および存在確認

#httpd -version
#rpm -qa | grep httpd

※何も表示されない場合は未インストール。

 

1-4. postgresqlのヴァージョン確認、および存在確認

#rpm -qa | grep postgres

※何も表示されない場合は未インストール。

 

1-5. proxyを利用している場合は、yum.confの設定を行う。

ファイル名:/etc/yum.conf

yum.conf設定例(poxy server:192.168.1.254 ポート番号:8080の場合)
proxy=http://192.168.1.254:8080 ←proxyのIPアドレスとポート番号を設定
proxy_username=ユーザーID   ←(例)linux@domain-name
proxy_password=ユーザーパスワード

これで事前確認は終了です。これから先がinstallationとなります。

PHP installation & network tools installation

2-1. network系コマンドパッケージのインストール

#yum install net-tools

installが完了すると「完了しました!」が表示されます。その後、ifconfigコマンドが使用できるか確認をしましょう。

net-toolsパッケージをinstallすることで、ipconfig、route、arp、netstatコマンドが使えるようになります。ただし、これらのコマンドは将来廃止予定です。

 

2-2. wgetのインストール

#yum install wget

installが完了すると「完了しました!」が表示されます。

 

2-3. EPELリポジトリのインストール

#yum install epel-release

installが完了すると「完了しました!」が表示されます。

※EPELとはExtra Packages for Enterprise Linuxの略で、Fedoraの有志が作成、メンテナンスしているRed Hat Enterprise LinuxやCentOSでも使えるパッケージレポジトリのことです。

 

2-4. Remiリポジトリ

#yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

CentOS7は「remi-release-7.rpm」をインストールします。

installが完了すると「完了しました!」が表示されます。

(注)EPELのリポジトリの追加を行った後に Remi のリポジトリを追加すること!

remiは、有志で最新バージョンのPHPモジュールをRHEL系のディストリビューションに提供しています。

 

2-5. PHP のパッケージ情報を確認

#yum info php –enablerepo=remi-php73

以下のようなphpパッケージ情報が表示されます。inatallはまだされていません。

利用可能なパッケージ
—————————–
名前                         : php
アーキテクチャー   : x86_64
バージョン              : 7.3.5
リリース                 : 1.el7.remi
容量                        : 3.2 M
リポジトリー         : remi-php73

 

2-6. PHPのインストール

#yum install php –enablerepo=remi-php73

installが完了すると「完了しました!」が表示されます。

 

2-7. PHPインストールの確認

#php -v
#rpm -qa | grep php

下記のメッセージを確認しておきましょう。
PHP 7.3.5 (cli) (built: Apr 30 2019 08:37:17) ( NTS )

「postgresqlインストールとヴァージョンアップ方法を解説」の続きを読む…

CISCO Router/switchの便利なコンソール設定

ここでは、CISCO Router/switchのコンソールログイン設定や初期に設定しておきたい設定をご紹介致します。

必要最低限のセキュリティ設定やこれから設定を行うにあたって、知っておくと便利なコマンドや設定をご紹介しております。

また、接続ポートを写真入りでご紹介しておりますので、ciscoルーター/スイッチへのケーブル接続が分からないって方はぜひ参考にしてみて下さいね(^^♪

この内容については動画でもご紹介しておりますので、読むのが面倒って方はこちらの動画をご覧下さい。

CISCO Router/switchの便利なコンソール設定

接続方法の種類

ciscoルーター/スイッチにアクセスする方法には、以下の3つの方法があります。

 コンソールポート接続
 AUXポート接続
 VTYポート接続

コンソールとは、ローカルで機器にダイレクト接続し制御・操作ができる入出力装置のことです。コンソールポートから接続ができると、遠く離れた場所(リモート)から接続できなくなっても現地に人が居ればcisco機器に直接ログインして操作を行うことができます。ルーティングを変更していてリモートから入れなくなくなったってことはたまにあります(^^;

AUXは、Auxiliary Portの略で補助のポートという意味です。最近はあまり使用しませんが、モデム経由でルータに接続したい場合に使用します。これは、あらかじめ公衆回線(電話回線/ISDN回線)を利用してAUXポートにモデムを接続しておくことで、万が一、WAN回線が障害で接続できない時に公衆回線から機器へ接続し状態を確認できるとても役立つポートです。また、AUXポートを利用して他のcisco機器のコンソールポートへアクセスしログインすることも可能となります。

VTYポートとは、物理的なポートではありません。VTYは、Virtual Terminal Lineの略で仮想端末のポートを意味しています。Ciscoルータ上で仮想的に複数ポートを
 持つことにより、複数のユーザが同時にアクセスすることが可能になります。デフォルトではVTYポート番号は、line vty 0 4とあることから仮想ポートとしては 0~4 の5ポートあります。ですので、Ciscoルータに同時に5つのtelnetセッションを接続することができます。VTYポートは、小さい番号から使用されていきます。

 

ケーブルの接続

冒頭で、ciscoルーター/スイッチにアクセスする方法を3つご紹介致しましたが物理的はポートは、コンソールポートとAUXポートのみです。VTYポートは仮想端末ポートですからケーブルをさすことはできません。

では、コンソールポートとAUXポートをcisco 892でご紹介を致します。

コンソールポートとAUXポートをcisco 892でご紹介

コンソールポートは分かりやすく、ciscoさんも水色で分かるように印字してくれています。同様に、AUXポートもはっきり記されているのでまず間違うことはないでしょう。

コンソールケーブルは、cisco機器に添付されています。水色のケーブルでパソコンに接続する側はD-sub 9ピンになっています。もう一方のcisco機器側に接続する側はLANケーブルと同じRJ-45のケーブになっています。

ciscoコンソールケーブル

現在、販売されている多くのパソコンには、D-sub 9ピンのインターフェイスが無くなってきているので、USB to D-sub9ピン変換アダプタを使用して接続します。ELECOMやBUFFALO・IODATAなどから2千円前後で販売されています。こちらが私が使用している変換アダプターです。

usb-dsub9pin変換アダプター

 

接続ポート設定

では、具体的にコンソールポートの設定をご紹介致します(^^♪

グローバルコンフィグレーションモードから以下のように投入します。

Switch(config)#line console 0
Switch(config-line)#password パスワード
Switch(config-line)#login

これでコンソールポートの最低限の設定は完了ですが、「logging sync」も投入しておくことをオススメ致します。
この「logging sync」は、ログがコンソールに表示される際に、入力中のコマンドを妨げることなく再表示してくれます。ですので、このコマンドはおまじないだと思って必ず入力するようにしましょう。

Router#
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line console 0       ←コンソールポートを設定
Router(config-line)#password cisco  ←パスワードを設定
Router(config-line)#login        ←ログイン時に認証をすることを明示
Router(config-line)#logging sync   ←ログで入力中のコマンドが邪魔されない
Router(config-line)#

 

VTYポートも基本的にはコンソールポートの設定と同様です。

Router#
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#line vty 0 4           ←仮想端末0から4までの5つを設定
Router(config-line)#password cisco  ←パスワードを設定
Router(config-line)#login       ←ログイン時に認証をすることを明示
Router(config-line)#logging sync   ←ログで入力中のコマンドが邪魔されない
Router(config-line)#

 

実際にコンソールポートの設定を動画でもご紹介しております。登録の様子が非常に分かりやすいのでぜひご覧ください。