そして伝説になりたかった

働きたくない男の雑記・備忘録

初心者向け解説 webサーバーの基礎知識

投稿日:2019/6/6 最終更新日:2020/05/12 閲覧数:2481

カテゴリー: システム・WEB>

サーバー。
web技術者であれば知っておくべき初歩の初歩の初歩知識ですね。
ぶっちゃけサーバーの知識なんか無くてもwebサイトは作れますが、最低限の知識がなければ咄嗟のトラブル発生に対処できなかったり、初級技術者から脱出はできないままでしょう。
早く中級技術者の仲間入りをするためにも、基礎知識は頭にとどめておきましょう。

僕がweb業界に入った最初の会社では、サーバーの事など一切教わらず、後輩社員が入ってきた頃からだいぶ戸惑いました。

さて、前置きはこれくらいにして本題に入ります。




サーバーとはなんぞや

とても簡潔に言うと、
「ユーザーに対してアクセスが解放された保存領域」

です。
ここで言う「ユーザー」とは
・社内サーバー→社員
・ビールサーバー→ビールを欲している人

というように、そのサーバーの役割、種類によって変わってくることでしょう。

webサーバーであればwebサイトの利用者がユーザーとなり、サーバー内に保存されたページファイルにアクセスします。

webサーバーの種類

いくつかの選択肢があり、それぞれメリット、デメリットがあります。用途によって選択し、組み合わせる必要があります。

外部的なもの

自社サーバー
– 社内に設置、管理される
レンタルサーバー
– 外部のサーバー会社に設置、管理される。容量が固定。
クラウドサーバー
– 外部のサーバー会社に設置、管理される。容量が可変。

サーバーは、スペック以上の負荷(アクセス数)がかかると停止してしまうため、想定される負荷によってサーバーの種類や大きさを、選択します。
・小~中規模ならばレンタルサーバ
・中~大規模、もしくは定期的、突発的にアクセス数が集中する恐れがある場合はクラウドサーバ
と、覚えておけば基本的には大丈夫だと思います。

コスト面では自社サーバーが優秀だと思われがちですが、必要スペックを満たすための初期費用、消費電力、場所、規模を大きくする際の拡張性、定期的な清掃、専用のOSの知識、など、意外と必要なものが多いです。
またwebサイトは24時間稼働することが前提のため、深夜に問題が起きることもあります。そのため、自社サーバーを選択することはほぼ無いでしょう。

内部的なもの

apache
nginx

それぞれ「アパッチ」「エンジンエックス」と呼びます。あまりなじみのない用語かもしれませんが彼らは「ミドルウェア」と呼ばれる「OSとソフトウェアの間のような何か」です。
サーバー内でミドルウェアが頑張っているからwebサイトを提供できるんですね。

この2つはアクセスに対する応答方式が根本から異なっています。
少し前まではapacheが主流だったのですが、今般のネット端末の普及により、サーバーへの負荷が爆発的に増大しました。 すると、システム上apacheが耐えられないという問題が発生し、新しく開発されたのがnginxです。
かといって「全てにおいてnginxが優秀であるか」と言われればそうでもなく、apacheが簡単なこともあり、現在も両方現役です。

一般的に
apache
・管理、運用、開発が比較的簡単
・複雑な処理が得意だが、大量に回すのは不得意

nginx
・情報がまだ少なく、敷居が高い
・簡単な処理を大量に回すのが得意

とされています。 nginxを使用する場合は、システム設計の段階から専用の設計をする必要があるでしょう。 「簡単な処理」を「大量に回す」のが得意、とあるように、使い方を間違えるとapache以下のパフォーマンスしか発揮されないこともあります。

初級コーダーがapacheだのnginxだのと気にする機会はほぼ無いと思いますが、htaccessが置いてあればあなたの触れているサーバーはapacheです。

データベース

・mySQL
・SQLserver
・oracle
・SQLite など

サーバーにインストールするほかのツールとの親和性、今後どういった活用をしていくか、などを考慮し、データベースを選択します。
レンタルサーバによってはインストールできるデータベースが決まっており、後々「他のデータベースだったらできていたのに!」ということ分かった、など、僕も実際にありました。

webサーバーに必要な機能

・言語が動く
・ネットに繋がる全ての人がアクセスできる
・ファイルの編集権限を管理できる
・接続制限などの設定ができる
・固定IPアドレスを持つ
・DNS設定ができる
・データベースを持つ

絶対に漏れはありますが、とりあえずこんなところでしょうか。
これらの機能を持っていて、初めてwebサーバーとして使用できます。

サーバーとftpソフト

サーバーとは基本的に余所にある訳で、その保存領域内のファイルを、誰もが接続して編集できてしまうとセキュリティ的にまずいですよね。
そこで、ftp接続という方法でPCとサーバーを一時的に繋ぐ必要があります。
ftp接続とは、サーバーに設定されたユーザー名とパスワードを入力することで、PCからサーバー内部にアクセスし、サーバー内のファイルを編集できるようにする接続方法です。
サーバー作業者に用意されたハッキング方法というイメージですかね。

サイトの制作はもちろん、文言修正や画像差し替えだけでもこのftp接続が必要であり、ftp接続にはまた専用のftpソフトが必要で、webの作業をする場合にはftp知識は必須です。

ちなみに、僕のおすすめはwinscpというソフトです。他のftpソフトも4つくらいつかったことがあるのですが、sftp接続に対応していて、無料、軽量、安定性、多機能、エディタとの連携など、文句なしの優秀さです。ぜひ使ってみてください。

気になる方はこちらの記事もどうぞ↓
よく使われる無料のftpソフト比較【windowsもmacも】

テストサーバーについて

テストサーバ、というものがあります。

サイトで修正や更新作業をしていると、「間違ってサイトのページを消してしまった!」なんてことを、いつか必ず、誰かしらが、起こします。

必ず起きる事なので、テストサーバーで一度テストを行い、作業を確認してから本番環境に反映させるのです。

バックアップをとる、という意味合いもありますね。
初級コーダーが任されるような、htmlの文言修正やお知らせの更新程度では、どんなに大きなミスをしてもページのレイアウトが崩れる程度だと思います。 が、もう少し上の段階の作業になると、プログラムの中のスペース1つを全角にしてしまったがために、サイト全てが真っ白になったり、そんなこともあり得ます。

客先のサイトの運用なんかしていて、全てが真っ白になったらもう、ちびりますよ。

そうならないためにもテストサーバ、テストサイトは必要なのです。

とはいえ案件でテストサーバの代金をもらっているならまだしも、小さな案件だったり個人運営のブログなんかだと、テストのためだけにレンタルサーバーを購入するのは気が引けますよね。
そんな時は自分のPCをサーバー化するのが良いのですが、htmlとcssだけの簡単なサイトだけならまだしも、ワードプレスを使ったりするならば、apacheをインストールしたり、データベースをインストールしたり、phpをインストールしたり、「サーバーに必要な機能」項目で挙げたような機能を満たす必要があります。正直1つ1つはやってられないです。

そこで便利なツールがありまして、今思い返せば研修で教えてほしかったのですが、xampp(ザンプ)といいます。自分のPCにwebサーバ環境を構築するパッケージ(?)なんですよね、これが。
このxamppは、インストールして各種機能をONにするだけで、そこがテスト環境となります。
レンタルサーバーだと作成できるデータベースの個数に制限があったりするのですが、自分のPCであれば無限に作成できます。とても優秀です。他者からのアクセスはできませんが、webコーダーの必需品ではないかと思います。

まとめ

以上、初級コーダーだからこそが早めに知っておきたい知識たちでした。
winscp、xamppはとりあえずインストールすることをオススメします。

よく見られている記事

おすすめの記事

管理人について

高専へ入学するがプログラミングが嫌いという理由で機械科を選択。その後勉強が嫌いという理由で高専退学。グラフィックデザインの仕事ができると騙され20歳からweb業界へ就職するも、大嫌いなプログラミングをさせられ続ける毎日が待っていた。未だにプログラミング地獄から脱出できないでいる。

その他管理人についてはこちら
プロフィールとか


コメントを残す