Webサーバーを構築するには
今までの記事でWebサーバー周辺技術について説明してきました。
ここでの記事はこれらのWebサーバーを構築する場合、具体的にどうすればいいか説明していきます。
Webサーバーを設置する
Webサーバーを構築するとき、まず必要なのはWebサーバーの設置です。
これは物理的なサーバーを構築する方法とサーバーを借りる方法があります。
1.物理的なサーバーを構築する方法
サーバーとなるマシンを購入して、そこにサーバーOSなどをインストールします。
サーバーは、社内に設置するほかデーターセンターなどの建物内に設置することもあります。
2.サーバーを借りる方法
クラウドやレンタルサーバーなどを借りる方法です。「専用サーバー」「共有サーバー」「VPS」の3種類があります。
専用サーバーか共有サーバーか
自分で物理的なサーバーを構築するのであれば好きな構成にできます。
しかし、クラウドやレンタルサーバーの場合には自由な構成にできないこともあります。
サーバーを借りるときには「1台のサーバーを他人と共有するか」と「root権限があるかどうか」という2点に注目してください。
1.1台のサーバーを他人と共有するか
他人と共有する場合、セキュリティの設定を間違えると同じサーバーを利用している他人から、そのファイルが見えたり書き換えられたりする恐れもあります。
また同じサーバーを利用する他人が人気サイトの運営するなど高い負荷がかかる使い方をすると、それに引きずれらて自分のWebサイトも十分な速度で通信できなくなる可能性があります。
2.root権限があるかどうか
サーバの設定変更やユーザーの作成など、全設定を変更できる権限のことを「root 権限(ルート権限)」と言います。
他人と共有するサーバーの場合間違いなくroot権限はありません。なぜなら他人と共有するサーバーの設定をそこに同居しているユーザーが勝手に変更したら、トラブルの元になるからです。
root権限は「1ユーザーに1台のサーバーを貸している専用サーバー環境」でしか与えません。
しかし専用サーバー環境であっても、サーバ事業所の運用ポリシーによってroot権限が渡されないこともあります。
root権限がない場合には、そのサーバーに対する設定変更が全くできません。
そのため、サーバーの主要な設定を書き換える必要がある1部のソフトはインストールできません。
他人と共有する環境でアルバがらroot権限がある「VPS」
root権限は、サーバー利用者にとって魅力的ですが物理的な1台のサーバーを1ユーザーに貸す方法をとっていたのでは、コストがかかり過ぎてしまいます。
この問題を解決するのが仮想化技術です。
仮想化技術を使うと、1台のサーバーの中に複数の「仮想的なサーバー(仮想サーバー)」を構築できます。
それぞれの仮想サーバーは隔離されており、互いに影響をうけません。そのため仮想サーバーなら1台の物理的なサーバーを複数台のサーバーに仮想的に分割してroot権限を付与する事ができます。
このように仮想化技術を使って、root権限を与えるようにしたが「VPS(Virtual Private Server)」です。
VPSは安価ではありながら、root権限が使えるという共有サーバーの安さと専用のサーバーの柔軟性を併せ持った自由度が高いサービスです。
DNSサーバーを設定する
DNSサーバーはこちらで紹介しています。「DNSとは」そしてIPアドレスはこちらIPアドレスとは
「専用サーバー」「共有サーバー」「VPS」のどれを使う場合でもインターネットに接続する段階になればIPアドレスが定まります。
もし、www.it-stepup.comなどのドメインでアクセスできるようにしたければ、ドメイン名を申請しDNSサーバーを構築してそのIPアドレスとの対応を設定します。
Webサーバーソフトをインストール・設定する
専用サーバーやVPSの場合、ソフトが何も入っていない。
そこでWebサーバーとして稼働させるために、ApacheなどのWebサーバーソフトをインストールして設定します。具体的にはサーバーのどのディレクトリに置かれたファイルをWebで見せるのかを決めます。
この作業には、root権限が必要です。root権限を持たないレンタルサーバーの場合には、Webサーバーソフトの設定がすぐに済んでいるので、この作業は必要ありません。
定められたディレクトリにファイルを置くと、それがWebに公開される状態になっておりファイルを配置するのに必要なアカウント情報が渡されます。
Web以外に必要な設定
Webサーバとして動かすために設定は、これが全てです。
しかし実際には、保守や運用のためにいくつかの追加の設定が必要になります。
1.SSH(Secure Shell)
リモートからサーバーを操作する場合、専用のソフトを使って操作コマンドを送り込みます。
ちょうどWindowsの「コマンドプロンプト」のようにコマンドを打ち込んでサーバーを操作するイメージです。
このときサーバーとの接続に「SSH」というプロトコルを使います。SSHは暗号化された通信を実現し、安全にサーバーを操作できます。
WindowsでSSH接続するソフトの代表として、例えば「Tera Term(http://sourceforge.jp/projects/ttssh2/)」や「PuTTY(http://www.chiark.greenend.org.uk/-sgtatham/putty/download.html)」があります。
サーバー側には、SSH接続を受け入れるためのソフトを設定して起動しておきます。このソフトは一般に「sshd」と呼ばれます。
SSHには「SCP(secure Copy)」と呼ばれる、ファイルをコピーする機能も内蔵されています。Webサーバーにファイルをアップロードするときには、このプロトコルを使うか。次に説明するFTPを使います。
SCPを使ってファイルを転送するWindows用のソフトとしては「WinSCO(http://winscp.net/)」な度があります。
2.FTP(File Transfer Protocol)
FTPは、ファイルを転送するプロトコルです。Webサーバーにファイルをアップロードしたいときに使う事があります。
FTPは「暗号化されていない」のがデフォルトですが、近年では暗号化されていない転送は危険だと考えられており、暗号化された「FTPS(FTP over SSL/TLS)」が使われることがほとんどです。
もしファイルの転送にSCPではなく、FTPを使いたいのであればサーバーにFTPサーバーソフトをインストールしておきます。
FTPサーバーソフトとしては「ProFTPD」などのソフトがあります。
最後に
いかがでしたでしょうか、Webサーバーの構築方法について記述しましたが理解できたでしょうか。
個人で使用する場合はほとんどが「レンタルサーバー」かと思います。お金持ちならもしかしたら物理的に設置するかもしれないですがw
段々と基礎知識の中でもディープな域に入ってきているので訳が混乱してくる人も出てくるかと思いますが。わからない時は立ち止まってゆっくり着実に勉強していけばわかる事だと思いますので。少しづつ覚えておいてください。
私はレンタルサーバを設置していますが個人的なお勧めは「Xserver(エックスサーバーです)」
ではでは