Webアプリケーションスタックとは、オペレーティングシステム、Webサーバー、データベースサーバー、実行可能コード環境など、多くのオープンソースソフトウェア製品を意味します。 最も有名で日常的なスタックはLAMPです。 これは、無料のオープンソースソリューションに基づくWebアプリケーションスタックの頭字語です。 名前は、製品の最初の文字で構成されています:
Linux (オペレーティングシステム)、
Apache Web
サーバー 、
MySQLデータベース 、および
PHP (場合によってはPerlまたはPython)。 セキュリティの問題に関する
以前に公開された資料では、専用サーバーまたは仮想マシンにさまざまなネットワークサービスを保持することを推奨しています。 これにより、攻撃者がサービスネットワークのリンクの1つでエラーを悪用する機会を得た場合、攻撃者によって侵害およびハッキングされたシステムの要素を隔離します。 この記事は、電子メールで送られてきた読者から最もよく寄せられる質問への回答でもあります。 このガイドでは、データベースとキャッシュを必要とするアプリケーションに静的コンテンツと動的コンテンツを配布するのに同等に適した物理サーバーまたは仮想サーバーに基づくソリューションを構築する方法を説明します。
翻訳者から:
元の一連の記事の著者は非常に簡潔で読みにくいです。 可能な場合は簡潔にし、説明を追加します。著者自身は、自分が言いたいことをよく理解していない場合があります。 翻訳により、専門的な環境で受け入れられる用語や安定した表現からの多くの逸脱が可能になります。 翻訳者は、発見されたことがテキストを理解することを困難にし、作家の無知を暴露する場合、個人的なメッセージの形でそのような場合にinを求めます。
LAMP:標準インストールおよび部分インストール
ほとんどの場合、単一の専用サーバーまたは仮想サーバーに基づいて構築されたソリューションは次のようになります。
/ +-----------------------------------------+ | Apache + PHP / Perl @ 75.126.153.206:80 | | Mysql@127.0.0.1: 3306 ( UNIX ) | | Pgsql@127.0.0.1: 5432 ( UNIX ) | | Netfilter | +-----------------------------------------+ *** LAMP *** : RHEL/CentOS/Debian/Ubuntu/*BSD/Unix : 4-8GiB ECC : Intel / AMD : RAID-1/5 - SATA/SAS
たとえば、Apache Webサーバーが侵害された場合はどうなりますか? 攻撃者は、データベース、キャッシュ、およびシステムまたはネットワークの他の要素にアクセスします。 この場合、次のようにサーバーサービスを分離する必要があります。
////////////////////////// / / / ////////////////////////// \ \ ----------| vm00 75.126.153.206:80 - eth0 192.168.1.1 - eth1 +-----------------------------+ | - | | (Firewall) | eth0:192.168.1.10/vm01 +-----------------------------+ +----------------------+ | | Lighttpd | +-----------------------------------+ | | | /var/www/static | | +----------------------+ | | eth0:192.168.1.11/vm02 +-----------------------------------+-----------------------+ | | Apache+php+perl+python| | | /var/www/html | | +-----------------------+ | | eth0:192.168.1.12/vm03 +-----------------------------------+-----------------------+ | | SQL | | |Redis/Memcached .. | | +-----------------------+ | | eth0:192.168.1.13/vm04 | ( RAID-10) +-----------------------------------+------------------------+ | | Mysql/pgsql | | | @192.168.1.13:3306/5432| | +------------------------+ | | eth0:192.168.1.14/vm05 | ( - NFSv4 RAID-10) +-----------------------------------+------------------------+ | NFSv4 Linux | | /export/{static,html | +------------------------+
フラクショナルインストールには多くの利点があります。
フェイルオーバー(このようなネットワーク相互作用[
vm00レベルの仮想IP]の
vm00ホストシステムの初期構成により、システムの断片的な部分のイメージ/コンテナーを他のリソースに転送する)などの高可用性領域のこの高度な機能に追加します。 、CDN、同様のシステム設定の場合により便利になります。
各仮想マシン/サーバーの役割:
以下は、マシンの目的に関する詳細情報です。 WordPressブログ、DrupalベースのWebサイト、またはそのようなサーバーでホストされるカスタムアプリケーションは、1か月に数百万件のヒットを簡単に処理できます。

どのように機能しますか?
システムがリバースプロキシサーバーでどのように機能するかを見てみましょう。 この例では、プロキシとHTTPサーバーをファイアウォールにホストします。 (図1を参照)。 Webサイト
www.example.comは、
eth0デバイスに割り当てられている静的IPv4アドレス
202.54.1.1でホストされます。 内部IP
192.168.1.1が
eth1に割り当てられます。 これは、リバースプロキシサーバーのノードです。 残りのサーバーはローカルネットワーク内にあり、インターネット経由で直接アクセスすることはできません。

ホスト
202.54.1.1のハードウェアまたはソフトウェア(OpenBSD / Linux)ファイアウォール
ルールは 、ポート80および443へのアクセスのみを許可します。他のすべてのポートはブロックされます。 各VMノードでは、iptablesも機能し、必要なポートへのアクセスのみが許可されます。 リバースプロキシは、HTTPサーバープールを次のように定義します。
## - www.example.com ## upstream mybackend { server 192.168.1.10:80; #server1 server 192.168.1.11:80; #server2 .... .. .. server 192.168.1.100:80; # server100 }
ApacheおよびLighttpdサーバーは、
vm05で構成されたNFSサーバーを介してファイルにアクセスします。 Apache Webサーバーは、PHPで動作するように構成されています。 PHPアプリケーションは、
vm04でホストされているデータベースサーバーに接続するように構成されています。 PHPアプリケーションは、
Memcachedサーバーを使用して、
vm03をSQLキャッシュとして使用します。
注:
リバースプロキシサーバーをDMZに配置し 、HTTPおよびその他のサーバーをファイアウォールの背後に配置して、セキュリティを強化することもできます。 ただし、これによりプロジェクトのコストが増加します。
話をやめて、サーバーのセットアッププロセスを見せてください
このノートにリストされているアクションのほとんどは、CentOS 6.x / Red Hat Enterprise Linux 6.x bashコンソールでrootユーザーによって実行されることを想定して書かれています。 ただし、他の* NIXのようなオペレーティングシステムに設定を簡単にコピーできます。