VPSでホームページを作ることはできる?

VPSに関する素朴な疑問の1つとして、「ホームページを作ることはできる?」という点があります。VPSなら、ただホームページを公開するだけでなく、複雑な構成をとることもできます。

 

■一般的なホームページは当然作ることができる
■レンタルサーバーでは難しい構成もVPSなら可能に

 

■一般的なホームページは当然作ることができる

VPSにはApache等のWebサーバーをインストールすることができますので、当然ながらホームページ(Webサイト)を作ることができます。レンタルサーバーは主にWebサイトを運用するために使われていると思われますが、VPSもその傾向があります。
VPSでWebサイトを公開する手順は、一般的なレンタルサーバーと特に異なる点はありません。静的なサイトであれば、AdobeのDreamweaverなどのソフトでHTMLやCSSを編集し、VPSの特定のディレクトリにアップロードします。また、WordPressなどのCMS(コンテンツ・マネジメント・システム)をVPSにインストールして、Webサイトを管理することもできます。

 

■レンタルサーバーでは難しい構成もVPSなら可能に

VPSはレンタルサーバーよりも自由度が高いので、レンタルサーバーでは難しい(あるいはできない)複雑な構成をとることもできます。そのいくつかの例を紹介します。

 

・Webサーバーとしてnginxを使う

これまでの回でも何度か触れてきましたが、VPSならではの構成として、「Webサーバーにnginxを使う」ということが挙げられます。nginxは軽量かつ高速なWebサーバーで、アクセスが多いサイトを運用するのに適しています。
Netcraftの調査によると、nginxのシェアは着々と増加していて、2017年1月時点で上位100万サイトの28.3%になっているとのことです。
(https://news.netcraft.com/archives/2017/01/12/january-2017-web-server-survey.html)
ただ、レンタルサーバーでは、nginxを使えるところはほとんどありません。その理由として、「Apacheの.htaccessに相当する機能がない」ということが挙げられます。
.htaccessは、ディレクトリごとにApacheの設定の一部を書き換えることができる機能で、アクセス制限や、Basic認証(※)などに使います。.htaccessファイルはユーザーが自分で設置することができ、Apache全体に関する設定ファイルを書き換える必要はありません。

一方、nginxでアクセス制限やBasic認証を行うには、nginx全体の設定ファイルを書き換える必要があり、ディレクトリ単位で手軽に設定するというわけにはいきません。
VPSならroot権限を得ることができますので、nginx全体の設定ファイルを書き換えることも問題なく行うことができます。

(※)Basic認証
 特定のディレクトリにユーザー名とパスワードの対応を書いたファイルを設置して、そのユーザー名/パスワードを入力したユーザーのみ、そのディレクトリの中のWebページ等を見られるようにする仕組みのことです。

 

・Node.jsでWebサイト/Webサービスを公開する

動的なWebサイトやWebサービスを作る1つの方法として、「Node.js」を使うことが挙げられます。Node.jsはプログラム言語の1つで、大まかに言えばサーバーで動作するJavaScriptです。Webブラウザで動作するJavaScriptと構文は同じですが、サーバー上で動作するので、より多くの機能を持っています(ファイルアクセスやネットワークアクセスなど)。
Node.jsのWebアプリケーションでは、そのアプリケーション自身をメモリに常駐させ、Webサーバーとして動作させるという仕組みを取ります。そのため、ほとんどのレンタルサーバーでは、Node.jsを望ましい方法で使うことはできません。CGIとして無理やり動作させることはできますが、Node.jsの良さが失われます。一方、VPSであれば、Node.jsのような仕組みであっても、問題なく動作させることができます。
ちなみに、アプリケーションをメモリに常駐させ、それ自身をWebサーバーとして動作させる仕組みは、Node.js以外のプログラム言語でもよく使われています。そのようなアプリケーションも、レンタルサーバーでは使うことができませんが、VPSなら使うことができます。

 

・1つのプログラム言語の複数バージョンを使い分ける

動的なWebサイトを開発するには、PHPなどのプログラム言語を使います。レンタルサーバーでも、PHPなどの主だったプログラム言語はインストールされていますので、多くの場合はPHPなどで動的なWebサイトを開発することができます。
ただ、場合によっては、プログラム言語の特定のバージョンが必要になることがあります。例えば、PHPの古めのアプリケーションだと、古いバージョンのPHPでないと動作しない、といったことがあり得ます。しかし、レンタルサーバーだと、使いたいバージョンがインストールされているとは限りません。

WebARENAのレンタルサーバー「SuiteX」では、PHPの複数バージョンを使える仕組みがあり、現在新バージョンの追加を準備しています。

メジャーなプログラム言語なら、複数のバージョンをインストールして切り替える仕組みがあります(表1)。

SSHでターミナルにログインできるレンタルサーバーであれば、コマンドを使って1つの言語の複数のバージョンをインストールして、状況に応じて使い分けることができる場合もあります。しかし、レンタルサーバーによっては、SSHでログインできなかったり、ログインできてもコマンドが十分に使えなかったりして、1つの言語の複数バージョンをインストールできないこともあります。
一方、VPSならそのような制限はありませんので、1つの言語の複数のバージョンを自由にインストールして使い分けることができます。

 

 表1 1つの言語の複数バージョンをインストールして使い分ける仕組み
言語 仕組み
PHP Phpenv
Perl perlbrew、plenv
Ruby rbenv、rvm
Python Pyenv
Node.js nodebrew、nvm

 

・nginxをリバースプロキシとして動作させる

nginxには「リバースプロキシ」(Reverse Proxy)という機能があり、複雑な構成を取ることができます。
「プロキシ」は、直訳すると「代理」のことで、アクセスを中継することを指します。外部のWebサーバーなどへのアクセスを中継して、Webページをキャッシュしたり、セキュリティチェックを行ったりする際に使うことが多いです。
一方のリバースプロキシは、「リバース」の言葉の通り、外部からのリクエストをいったん受け取って、内部へのリクエストに変換する際に使います。
例えば、Webサイトの中で、アドレスが「http://〇〇〇.com/nodejs/・・・」のようになっている部分をNode.jsのアプリケーションで処理し、それ以外はnginxで処理するようにしたいとします。この場合、nginxをリバースプロキシとして動作するように設定し、リクエストがあったアドレスを判断して、「http://〇〇〇.com/nodejs/・・・」のアドレスの場合だけNode.jsに処理を振り分けることができます(図1)。

 

図1nginxをリバースプロキシとして動作させる例

図1nginxをリバースプロキシとして動作させる例

 

 

 

うちだ
サービスクリエーション本部所属        (監修:とみなが)       

オススメ記事

関連サービス

VPS VPSクラウド