WEB開発者に必須のサーバースキルを学習するコツ#4「apacheとnginx」

2021年10月25日

テクノロジー

eyecatch サーバーの基本はインターネットサーバーのwebサイトを表示するwebサーバーだと確信している、ユゲタです。 メールサーバーや、DNSサーバー、FTPサーバー、ファイルサーバー、データベースサーバー・・・などなど いっぱい種類があるサーバーですが、初心者が学習をするためには、実践的なwebサーバーを立ち上げることをオススメします。 ただ、なんちゃらサーバーを立ち上げようとする場合に、Linuxであれば、サーバーアプリケーション(モジュールっていう言い方するときもあるよ)を インストールすれば、9割型の設定が完了する場合も多く、 その設定の仕方さえ覚えれば、サーバーなんていうのは、簡単に設置できてしまいます。 でも、webサーバーは、色々な汎用的に使うための設定や、セキュリティの設定、サーバー負荷や、パフォーマンスにどう影響するかを理解する必要があるので、 今回はユゲタのwebサーバー設置手順も含めたwebサーバー構築の基本をブログに書いておきたいと思います。

webサーバーには、apacheとnginxのどっちがいいの?

多くのwebアプリケーションの設定は、apacheで行うことを前提に書かれていて、nginxは、少し玄人アプリとして扱われガチですが、 ユゲタは、5年以上前にapacheからnginxに切り替えて、それ移行便利にnginx生活を送らせてもらっています。 apacheのメリットは、.htaccessが使えるという点と、世の中に色々な情報が多いという事で、 nginxのメリットは、とにかくパフォーマンスが良く、より高負荷に耐えられるシステム構築に向いています。 インターネットサーバー(特にwebサーバー)においては、バズり対応として、いきなりのアクセス過多に対応しておかないと、 結果的に、運用側が痛い思いをしてしまうので、少しでもパフォーマンスのいいシステムを好んでいるということですが、 .htaccessの利便性はよく理解しているし、wordpressなども、apacheをベースにすることを前提にしている設定などもあるので、 ココは、自分の好きな方を使うということをオススメしたいと思います。 ただ、今回はnginxでのwebサーバー構築手順を書くので、apacheの方は置き換えてお読みください。

webサーバー構築手順

OSをインストールしたら、webアクセスしようがしまいが、nginxをインストールしておきます。 これは、そのサーバーがインターネットブラウザでアクセスできる入り口のようなもので、自分の作った便利システムに簡易にアクセスする為のおまじないだと考えています。 そして、まよわず、 apt-get install -y nginx * centosの場合は、yum install -y nginx と、するだけですが、この時に、phpをインストールするために、現時点での最新は、ver8,ですが、安定版であるver7.3より上のバージョンをイントールします。 しかし、現行OSのほとんどが、PHPはver5.4を標準インストールされてしまうので、aptやyumのphpバージョンを見に行くリポジトリを更新する手順を行い、 ver7xをインストールするようにします。 ※手順は、「ubunts php7.4 インストール手順」 などでググってみると、その時のディストリビューションの対応が検索結果でわかります。 ちなみに、phpと言っていますが、「php-fpm」という、より高速バージョンをインストールします。 こうした高速化にこだわるのには、サーバーが高負荷になったことを経験してみるとよくわかるのですが、 とにかく実践を考えると、パフォーマンスを重要視するのは、サーバーにとっては、非常に大事なんですね。

nginxインストール後の設定

無事にnginxとphpがインストールされたら、次は、アクセスするドメインに対してのconf設定です。 これは、ドメインやら環境に応じて設定内容は大きく変わるので、自分のテンプレートを作っておくと、次回以降の効率が半端なくアップするでしょう。 そして、インターネットブラウザからのアクセスが確認できたら、最後に、ssl(tls)のインストールです。 もちろん、無料のLet's Encryptをインストールして、cronを使って、3ヶ月毎に自動更新するようにセットしておきます。 こうしておけば基本的には、手放しで運用ができるのですが、ログ監視を怠ってはいけません。 zabbixなどをインストールして、監視体制を整えたら、立派な商用利用できるwebサイトの完成です。

運用監視は重要!

あとは、実際に自分で作ったwebサイトを公開して、運用してみると、 想定しなかったトラブルが起きることに、はじめは驚くかもしれません。 例えば、自動更新しているはずの、ssl設定が、更新できていなかったり、 →これはたまに、nginxの再起動が必要になる場合があるので、再起動すれば適用される場合が多いです。 想定外の外部からの不正アクセスに気が付き、セキュリティを強化しなくてはいけなくなったり、 思いの外、アクセス数が増えて、サーバーがダウンしがちになった場合など、どうやってサーバーを構築すればいいかとか・・・ こういう対応を怠らないように、監視業務というのは、必ず行いましょう。 そして、ちょっとずつサーバーの改善を行うことが、スキルアップにつながっていきます。 一朝一夕に、学習するのが難しいサーバー学習ですが、基礎をしっかりとやっておいて、あとは根気よく 運用を続けるのが一番良い学習法だと思いますね。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。