[PR]当サイトはアフィリエイト広告を利用しています。
今回はWebサーバーであるNginxをリバースプロキシに適用しているレンタルサーバーについて解説していきます。
まずはじめにNginxについて軽く解説したのち、リバースプロキシとはそもそもなんなのか、ということを解説します。その後リバースプロキシの利点を解説し、最後にNginxをリバースプロキシにしているレンタルサーバーをまとめます。
Nginxのリバースプロキシ化は多くのメリットがあります。今回の記事を読むことで、Nginxをリバースプロキシに適用するということに対して理解が深まり、レンタルサーバー選びに関する知識が深まれば幸いです。
Nginxとは
Nginxの概要
NginxとはWebサーバーの一つです。
Webサーバーには代表的な次の3つが存在します。
- Apache
- Nginx
- LiteSpeed
上のリストは速度の昇順に並んでいます。Apacheが遅め、LiteSpeedが高速と言われています。
Webサーバーとはサイト閲覧者がウェブページを表示しようとしたとき、サーバー上のサイトの情報を読み込んで閲覧者にデータを返すような役割をするソフトウェアのことです。つまりWordPressで言うと、ユーザーからアクセス要求があったときに、WordPressというプログラムでウェブサイトを作成してユーザに送信するのがApacheやNginxということになります。
Webサーバーは、テキスト、画像、動画、アプリケーションデータなど、Webサイトのコンテンツを保存し、要求したクライアントに配信します。
NGINX, Webサーバーとは?, 閲覧日2023-09-19.
ApacheとNginxはオープンソースソフトウェアで、ソースコードが無償公開されていて、比較的安く運用できます。
NginxはC10K問題を解決するために開発されました。
イゴール・シソーエフ(Igor Sysoev)は当初、C10K問題を解決するためにNGINXを開発しました。「C10K」とは、1999年に作られた用語であり、大量(10K)の同時接続(C)の処理が既存Webサーバでは難しいことを意味します。
NGINX, NGINXとは?, 閲覧日:2023-09-19.
この性質からNginxは高速に大量のアクセスをさばけるという性能を持ち、Apacheのシェアを奪いつつあります。
Webサーバー | シェア |
Nginx | 34.2% |
Apache | 31.0% |
Cloudflare Server | 21.0% |
LiteSpeed | 12.5% |
C10K問題とは
ApacheのシェアがNginxに奪われている理由を理解するために、C10K問題についてもう少し詳しく解説します。
詳細は次のサイトにわかりやすくまとめられているので、完全に理解したい場合はこちらをご覧ください。
簡単に言うと、C10K問題というのは、次のような3つの原因で同時接続に弱くなる問題です。
- サーバーに接続要求があるたびにOSがプロセス(処理のまとまりのようなもの)を立ちあげるが、同時に立ち上げられるプロセスに上限があるので上限を超えると処理待ちで遅くなる
- プロセス間のスイッチング(切り替え)をするための処理が、同時接続が多すぎると膨大になり、コンピューターのリソースが足りなくなる
- ファイル入出力など、プロセス以外の動作にも同時に処理できる上限がOSで決まっていて、その上限以上は同時にさばけない
Nginxの利点
Nginxはイベント駆動型という仕組みで、C10K問題を解決します。イベント駆動型というのは、簡単に言うと、処理だけ投げて終わったら次に進むような処理の仕方です。処理を投げている間に別の処理をこなすことができます。この効率的な動作のおかげでC10K問題を解決しています。
イベント駆動型ではない仕組みは次のようなものです。
一連のプロセスを順番に処理するので、処理が終わるまでコンピューターのリソース(CPUなど)が暇になります。つまりAが終わるまでBやCに取り組むことができません。
対してイベント駆動型だとこうなります。
上で重い時間がかかる処理が処理A、軽い時間がかからない処理が処理Bとなります。イベント駆動型ではない処理では重い処理Aがすべて終わるまで、リソースは待機している必要がありますが、イベント駆動型ではAの処理を待っている間も、処理BやCを行えるので、リソースの待ち時間が減って効率的な処理ができます。
これを実現したのがNginxというWebサーバーとなります。
リバースプロキシとは
リバースプロキシ概要
リバースプロキシというのはWebサーバー本体の前段階に置かれるサーバーです。リバースプロキシサーバーとも言います。
通常の通信はリバースプロキシがない状態で行われます。するとオリジンサーバーとユーザーが直接通信するのでオリジンサーバーのIPアドレスなどが筒抜けになります。一般にIPアドレスが筒抜けなのはセキュリティ上リスクがあります。IPアドレスがわかればどこにサーバー本体があるのか地理的情報が判明してしまいます。地理情報は大まかなものがわかるだけですが、IPアドレスがハッカーにわたるとハッキングなどのリスクが高まります。サーバーのIPアドレスがわかれば、そこをめがけた攻撃が仕掛けやすくなるのです。
リバースプロキシを挟むことで、ユーザーはリバースプロキシサーバーとだけ通信を行うことになり、オリジンサーバーと直接情報をやり取りしないので、オリジンサーバーの匿名性が担保されます。
このようにリバースプロキシサーバーはオリジンサーバーとユーザーの間に配置され、ユーザーのリクエストをオリジンサーバーへ繋ぎ、オリジンサーバーからの応答をユーザーに伝える橋渡しをします。
Nginxはオリジンサーバーに採用することもできますが、リバースプロキシサーバーに採用することもできます。つまりオリジンサーバーにApacheを、リバースプロキシサーバーにNginxを採用することができるのです。なぜこの構成が良いのかも後に解説します。
上で挙げた理由以外にもリバースプロキシを利用するメリットは色々あります。これからそれを解説していきます。
Nginxをリバースプロキシに採用するメリット
リバースプロキシの利点を挙げるより、直接Nginxをリバースプロキシに採用するメリットを述べていこうと思います。結局ここが知りたいわけですからね。主な利点は次のようになります。
- ファイルキャッシュで高速な通信を実現
- オリジンサーバーの匿名化
- アクセス制限や不正なリクエストのフィルタリング
- gzip圧縮転送
- 通信のログを一括管理
- リクエストとレスポンスのバッファリング
- Apacheの.htaccess機能を使いながらリバースプロキシの利点を活かせる。
順番に解説していきます。
ファイルキャッシュ
ファイルキャッシュについてですが、これはリバースプロキシサーバーを物理的にユーザーの近くに置いておき、そこにオリジンサーバーのキャッシュファイルを配置します。例えば東京にオリジンサーバーがあるときに、北海道のユーザーのために北海道にリバースプロキシサーバーを設置してそこにオリジンサーバーが作成したキャッシュファイルを配置します。するとユーザーはキャッシュファイルだけ受け取ればよいので、通信経路の物理的な距離が短くなり、通信時間が短縮されます。東京と北海道の通信をするところを北海道内で通信を完結させることができます。(あくまで例えなので実際はどうなっているかわかりません)
オリジンサーバーの匿名化
次にオリジンサーバーの匿名化。これは上で述べたようにユーザーとオリジンサーバーの通信は間にリバースプロキシサーバーが入ることで、ユーザーはリバースプロキシサーバーとだけ通信すればよいので、オリジンサーバーのIPアドレスが匿名化されます。IPアドレスが匿名化されることで大事なコンテンツが存在するオリジンサーバーへの攻撃がしにくくなり、セキュリティが向上します。
アクセス制限・フィルタリング
アクセス制限やフィルタリングというのは、リバースプロキシサーバーがユーザーのIPアドレスなどをもとに、攻撃者や許可されていない地域からのアクセスかどうか判定して、許可できないユーザーからのアクセスはオリジンサーバーでコンテンツを作成する前に遮断することでサーバーのセキュリティを高めることです。
gzip圧縮転送
gzip圧縮転送というのは、リバースプロキシサーバーがユーザーにコンテンツを配信する際に、リバースプロキシサーバーがコンテンツファイルを圧縮することでファイル容量を減らし、通信時間を減らす仕組みです。送信するファイル容量が減ればそれだけ通信時間は短くなります。ユーザーは圧縮されたコンテンツファイルを展開して利用します。
通信のログを管理
通信のログを管理するというのは、リバースプロキシサーバーはユーザーとオリジンサーバーの間に入ってすべての通信を管理するので、通信の全体としてのログが取りやすく、通信履歴の管理がしやすくなるということです。
リクエストとレスポンスのバッファリング
リクエストとレスポンスのバッファリングについて解説します。通常リバースプロキシを設置しない場合、ユーザーがサーバーへコンテンツ配信のリクエストを送ってから、サーバーがコンテンツを作成してユーザーにレスポンスとしてコンテンツが届くまで、コンピューターのリソースはブロックされます。つまりコンテンツが届くまでCPUなどはブロックされ、他の処理ができません。つまりApacheなどで構成されたオリジンサーバーは一連の処理が終わるまでブロックされ他のことができなくなります。
このときリバースプロキシサーバーとしてNginxを採用すると、ユーザーとサーバーの通信はリバースプロキシとユーザー間だけで行われるので、Apacheなどのオリジンサーバーはコンテンツを作成してリバースプロキシサーバーに渡すだけでよく、間にユーザーとの通信が入らない分、コンテンツ配信までの時間が短縮されます。もちろんNginxは一つの通信を行っている間に別のユーザーとの通信を担当することもできるので効率的です。
.htaccessの利用
.htaccessというのは、Webサーバーの基本的な動作を、ディレクトリ単位で制御するためのファイルです。このファイルによりリダイレクト処理(あるページへの訪問者を別のページへ自動で転送する)が可能となります。古いサイトを新しいサイトへ転送する際などに利用されます。
またBASIC認証という機能でページにユーザー名とパスワードの認証を付ける時にも使います。
さらにIPアドレスでページの閲覧を制限したりもできます。特定のPC(例えば社内のみ)にだけアクセスを許可させるような使い方ができます。
この.htaccessという仕組みはApacheでは使えますが、Nginxでは使えません。そこでサーバーの中核はApacheで処理して.htaccessを利用可能にしておき、リバースプロキシとしてNginxを採用することでApacheで従来やっていたことを利用可能にしつつ、リバースプロキシの利点も得ることができるようになるのです。
Nginxをリバースプロキシにしているレンタルサーバー
さくらのレンタルサーバ
さくらのレンタルサーバはNginxをリバースプロキシにしていることが確実です。
2018年のリニューアル時に、モジュール版PHPの提供開始とともにnginxをリバースプロキシとした構成に全プランを変更いたしました。
さくらのナレッジ, さくらのレンタルサーバでWordPressサイトを高速に動かす方法。モジュール版PHPって何!?, 2019-05-15, 閲覧日2023-10-03.
さくらのレンタルサーバのプランは次のようになります。月額は12か月払いを12で割っています。
プラン | ライト | スタンダード | プレミアム |
月額 | 165円 | 550円 | 1,430円 |
ディスク容量 | 100GB | 300GB | 400GB |
ストレージタイプ | SSD | SSD | SSD |
転送量上限 | 無制限 | 無制限 | 無制限 |
独自ドメイン | 20個 | 200個 | 300個 |
データベース | なし | MySQL 50個 | MySQL 100個 |
http/2 | ○ | ○ | ○ |
無料独自SSL Let’s Encrypt | ○ | ○ | ○ |
バックアップ | なし | 8日※ | 8日※ |
Webサーバー | Apache | Apache | Apache |
リバースプロキシ | Nginx | Nginx | Nginx |
.htaccess | ○ | ○ | ○ |
モジュール版PHP | × | ○ | ○ |
サポート | チャット、メール、電話(コールバック予約) | チャット、メール、電話(コールバック予約) | チャット、メール、電話(コールバック予約) |
WordPressが使えるのは基本的にスタンダードプランから。ディスク容量300GBのレンタルサーバーの中では比較的低価格で利用できます。複数ブログを一つのプランで運営することも可能で、そのときのコスパはかなり良いです。詳細は次の記事で解説しています。
リバースプロキシかは不明だがNginxを利用しているレンタルサーバー
リバースプロキシにNginxを使っているかはわかりませんが、Nginxを利用していることがわかっていて、.htaccessが利用可能なレンタルサーバーも紹介します。
Xserver
XserverはApacheとNginxを両方利用しています。(仕様一覧)
また.htaccessが利用可能です。
とりえずレンタルサーバーはXserverにしておくと良いという話もよく聞きますね。Xserverは日本で一番利用されているレンタルサーバーです。日本のレンタルサーバーの利用率トップ3は次のようになります。
レンタルサーバー | シェア |
エックスサーバー | 14.68% |
ロリポップ! | 14.15% |
さくらのレンタルサーバ | 13.56% |
プラン | スタンダード | プレミアム | ビジネス |
ドメイン永久無料 | 2つ | 2つ | 2つ |
月額 | 1,100円 | 2,200円 | 4,400円 |
ディスク容量 | 300GB | 400GB | 500GB |
ストレージタイプ | NVMe SSD | NVMe SSD | NVMe SSD |
転送量上限 | 無制限 | 無制限 | 無制限 |
独自ドメイン | 無制限 | 無制限 | 無制限 |
データベース | MariaDB 無制限 | MariaDB 無制限 | MariaDB 無制限 |
http/2 | ○ | ○ | ○ |
無料独自SSL Let’s Encrypt | ○ | ○ | ○ |
バックアップ | 自動14日 | 自動14日 | 自動14日 |
Webサーバー | Apache+Nginx | Apache+Nginx | Apache+Nginx |
.htaccess | ○ | ○ | ○ |
サポート | チャット、メール、電話 | チャット、メール、電話 | チャット、メール、電話 |
ConoHa WING
ConoHa WINGConoHa WINGはApacheとNginxのハイブリッドです。.htaccessが利用できます。(機能一覧)
速さを全面に出しているレンタルサーバーです。サービス品質保証(SLA)を導入し、品質保証値はサーバーの月間稼働率99.99%以上としています。障害が少ないレンタルサーバーと言えますね。
プラン | ベーシック | スタンダード | プレミアム |
ドメイン永久無料 | 2つ | 2つ | 2つ |
月額 | 1,089円 | 2,360円 | 4,719円 |
ディスク容量 | 300GB | 400GB | 500GB |
ストレージタイプ | SSD | SSD | SSD |
転送量上限 | 無制限 | 無制限 | 無制限 |
独自ドメイン | 無制限 | 無制限 | 無制限 |
データベース | MySQL 無制限 | MySQL 無制限 | MySQL 無制限 |
http/2 | ○ | ○ | ○ |
無料独自SSL 「Let’s Encrypt」 | ○ | ○ | ○ |
バックアップ | 自動14日 | 自動14日 | 自動14日 |
Webサーバー | Apache + nginx | Apache + nginx | Apache + nginx |
.htaccess | ○ | ○ | ○ |
サポート | 電話、メール | 電話、メール | 電話、メール |
シンレンタルサーバー
シンレンタルサーバーはApacheとNginxのハイブリッドです。.htaccessは利用可能です。(サーバー仕様一覧)
プラン | ベーシック | スタンダード | プレミアム | ビジネス |
ドメイン永久無料 | 1つ | 1つ | 1つ | 1つ |
月額 | 880円 | 1,780円 | 3,560円 | 7,120円 |
ディスク容量 | 300GB | 400GB | 500GB | 600GB |
ストレージタイプ | NVMe SSD | NVMe SSD | NVMe SSD | NVMe SSD |
転送量上限 | 900GB/日 | 1200GB/日 | 1500GB/日 | 1500GB/日 |
独自ドメイン | 無制限 | 無制限 | 無制限 | 無制限 |
データベース | MariaDB 無制限 | MariaDB 無制限 | MariaDB 無制限 | MariaDB |
http/2 | ○ | ○ | ○ | ○ |
無料独自SSL Let’s Encrypt | ○ | ○ | ○ | ○ |
バックアップ | 自動14日 | 自動14日 | 自動14日 | 自動14日 |
Webサーバー | Apache+Nginx | Apache+Nginx | Apache+Nginx | Apache+Nginx |
.htaccess | ○ | ○ | ○ | ○ |
サポート | 電話、メール | 電話、メール | 電話、メール | 電話、メール |
スターサーバー
スターサーバーはNginxを利用し、.htaccessが利用できます。(nginxについて)
エックスサーバー系列のネットオウルという企業が運営し、格安系のレンタルサーバーになります。
ブログを一つだけ運営するならライトプランが安くておすすめです。エコノミープランはWordPressが使えません。
プラン | エコノミー | ライト | スタンダード | ハイスピード | エンタープライズ |
月額 | 138円 | 275円 | 550円 | 825円 | 2,200円 |
ディスク容量 | 20GB | 160GB | 200GB | 320GB | 500GB |
ストレージタイプ | SSD | SSD | SSD | SSD | SSD |
転送量上限 | 200GB/日 | 500GB/日 | 700GB/日 | 900GB/日 | 1200GB/日 |
独自ドメイン | 20個 | 50個 | 無制限 | 無制限 | 無制限 |
データベース | なし | MySQL 1個 | MySQL 50個 | MySQL 無制限 | MySQL 無制限 |
http/2 | ○ | ○ | ○ | ○ | ○ |
独自SSL Let’s Encrypt | ○ | ○ | ○ | ○ | ○ |
バックアップ | なし | なし | なし | なし | なし |
Webサーバー | Nginx | Nginx | Nginx | Nginx | Nginx |
.htaccess | ○ | ○ | ○ | ○ | ○ |
サポート | メール | メール | メール | メール | メール |
お名前.comレンタルサーバー
お名前.comレンタルサーバーでは、ApacheとNginxを利用しています。(特長)
バックエンドでApacheとあるので、Nginxはリバースプロキシではないかと推測されますが、詳細は不明です。
プランは一つだけです。WEB高速化エンジン「WEXALM® Page Speed Technology」を搭載して速さを追及しています。またドメインが一つ無料でついてきます。そしてWordPress引っ越し機能も付いています。
月額 | 1,078円 |
ディスク容量 | 400GB |
ストレージタイプ | SSD |
転送量上限 | 無制限 |
独自ドメイン | 無制限 |
データベース | 無制限 |
http/2 | ○ |
独自SSL アルファSSL | ○ |
バックアップ | 自動14日間 |
Webサーバー | Apache+Nginx |
.htaccess | ○ |
サポート | メール、電話 |
まとめ
今回はレンタルサーバーの構成としてオリジンサーバーにApache、リバースプロキシにNginxを採用するということはどういうことなのか、Nginxの解説から始めて、リバースプロキシそのものや、その利点を述べた後、Nginxをリバースプロキシにしているレンタルサーバーや、とにかくNginxを利用しているのが公開されているレンタルサーバーを紹介しました。
レンタルサーバー選びの一助となりましたら幸いです。
Nginxのリバースプロキシについて解説したよ
レンタルサーバー選びに関してはこちらも参考になるかもしれません。