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)#

 

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

 

 

CISCO Router/switchのログイン方法と特権モード

ここでは、CISCO Router/switchのコンソールログイン方法や設定の追加や変更・機器管理を行える特権モードコンフィグレーションモードについてご紹介を致します。

この内容は、CISCO router/switchを初めて触るって方向けなので、これらについてもう既に知っているという方は読み飛ばして下さい。

基礎からしっかりと覚えたいという方はまずは基本を覚えましょう。また、普段慣れたエンジニアがよく使う方法も記載しておりますのでぜひ参考にしてみて下さい。

CISCO Router/switchのログイン方法と特権モード

Cisco IOSのモードとログイン方法

Cisco IOSでは、セキュリティ機能として以下の2つのモードがあります。
 ユーザーモード(ユーザーEXECレベル)
 特権モード(特権EXECレベル)

それらモードの大きな違いは、ユーザーモードは基本的なモニタコマンドだけしか使用をすることができません。
が、特権モードでは、すべてのルータコマンド(設定や管理など)にアクセスすることができます。
※使用できるコマンドの比較を載せているので細かく知りたい方はこちらをご覧下さい。

エンジニアの方は常に特権モードで登録作業やトラブルシューティングを行います。ですのであまりユーザーモードで作業を行うことはありません。ログインするとすぐに特権モードに移る癖がついています(^^♪

また、特権モードになるとルーターのインターフェイスやQOSなど数々の設定が可能になります。その設定できるモードには、以下の2つのモードがあります。
 グローバルコンフィグレーションモード
 特定コンフィグレーションモード

グローバルコンフィグレーションモードは、ルータに名前を設定したり、パスワードを設定したりと機器共通の設定で、特定コンフィグレーションモードは、特定のポートやコントローラーを設定する時に使用します。

ルータを起動した直後はユーザーモードです。ここから特権モードへ移るには[enable」コマンドを使用します。
見分け方は、プロンプトが「>」から「#」へ変わります。
ユーザーモードは、「>」、特権モードは「#」と覚えておきましょう。

Router>           ←ユーザーモード
Router>enable        ←特権モードへ移行するコマンド
Router#           ←特権モード

特権モードからユーザーモードへ戻るには、「disable」コマンドを使用します。ですが実際現場ではあまり使いません。

Router#disable        ←特権モードからユーザーモードへ戻る
Router>

インターフェイスなどの設定を行うには、グローバルコンフィグレーションモードに移行する必要があります。
グローバルコンフィグレーションモードに移行するには、特権モードで「configure terminal」コマンドを使用します。
通常、「conf t」と入力をします。

Router>enable
Router#configure terminal
Router(config)#

グローバルコンフィグレーションモードではプロンプトに「(config)#」が追加されます。

グローバルコンフィグレーションモードから特権モードに戻るには、「exit」コマンドを使用します。直接ユーザーモードに戻ったり、ログアウトすることはできません。

Router(config)#exit
Router#

最も多く使用するインターフェイスなどの設定を行うには、特定コンフィグレーションモードに移行します。
特権モード→グローバルコンフィグレーションモード→interfaceポート コマンドという流れになります。

Router>enable
Router#conf t
Router(config)#
Router(config)#interface FastEthernet 0/1
Router(config-if)#

特定コンフィグレーションモードからグローバルコンフィグレーションモードに戻るには、exitコマンドを使用します。endコマンドを使用すると特権モードに戻ることができます。通常、「CTL+Z」で特権モードに戻るエンジニアが多いです(^^♪

Router(config-if)#end
Router#

 

C3750 Version 12.2(25r)SECで使用できるコマンドをユーザーモードと特権モードで比較してみました。

ユーザーモードで使えるコマンド 特権モードで使えるコマンド
access-enable
clear
connect
disable
disconnect
enable
exit
help
lock
login
logout
mrinfo
mstat
mtrace
name-connection
ping
rcommand
release
renew
resume
set
show
systat
tclquit
telnet
terminal
traceroute
tunnel
where

access-enable
access-template
archive
beep
cd
clear
clock
cns
configure
connect
copy
debug
delete
diagnostic
dir
disable
disconnect
dot1x
enable
eou
erase
event
exit
format
fsck
help
if-mgr
ip
ipe
license
lock
login
logout
mkdir
monitor
more
mrinfo

mrm
mstat
mtrace
name-connection
no
ping
power
pwd
ommand
release
reload
remote
rename
renew
resume
rmdir
rsh
send
session
set
setup
show
systat
tclquit
tclsh
telnet
terminal
test
traceroute
tunnel
udld
undebug
upgrade
verify
vmps
vtp
where
write

 

CISCOルーター、スイッチの設定についてもっと知りたい方はこちら