Apacheは、利用可能な最も信頼性が高く強力なWebサーバーの1つです。 Apacheはオープンソースであり、高度にカスタマイズ可能であり、機能を追加できるようにする多くのモジュールが付属しています。そのパワーで知られており、中小規模のWebサイト向けに特別に設計されています。
ApacheをNginxおよびFastCGIキャッシュと並行して使用すると、両方の長所を活用できます。この設定により、両方のWebサーバーアプリケーションの長所を使用して、Webサーバーのパフォーマンスが向上します。 Nginx FastCGIキャッシュは、ファイルのコピーをキャッシュに保存して、より迅速にアクセスできるようにすることで機能します。
このチュートリアルでは、Ubuntu18.04でLAMPサーバーを使用してNginxFastCGIキャッシュをセットアップする方法を示します。 FastCGIキャッシュを使用して、Apacheをバックエンドサーバーとして構成し、Nginxをフロントエンドサーバーとして構成します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS
- サーバーで構成されているrootパスワード
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
ステップ2–LAMPサーバーをインストールする
First, install the Apache web server, PHP, PHP-FPM and other modules with the following command: apt-get install apache2 php php-fpm libapache2-mod-php7.2 libapache2-mod-fcgid -y>
すべてのパッケージをインストールしたら、ApacheがPHP-FPMで動作できるように、いくつかの必要なApacheモジュールを有効にする必要があります。
次のコマンドで有効にできます:
a2enmod actions fcgid alias proxy_fcgi
次に、Apacheサービスを再起動して変更を適用します。
systemctl restart apache2
ステップ3–サンプルWebサイトを作成する
まず、次のコマンドを使用してWebサイトのディレクトリを作成します。
mkdir /var/www/html/example.com
次に、Webサイトディレクトリ内にサンプルのinfo.phpファイルを作成します。
nano /var/www/html/example.com/info.php
次の行を追加します:
<?php phpinfo(); ?>
ファイルを保存して閉じてから、Webサイトの所有権をwww-dataユーザーに変更します。
chown -R www-data:www-data /var/www/html/example.com chmod -R 755 /var/www/html/example.com
終了したら、次のステップに進むことができます。
ステップ4–ApacheWebサーバーを構成する
nano /etc/apache2/ports.conf
行を「Listen80」から「Listen8088」に変更します。
Listen 8088
終了したらファイルを保存して閉じ、次のコマンドでApacheのデフォルトの仮想ホストファイルを無効にします。
a2dissite 000-default.conf
次に、ApacheWebサーバーを再起動して変更を実装します。
systemctl restart apache2
次に、Webサイトにサービスを提供するための新しい仮想ホスト構成ファイルを作成します。
nano /etc/apache2/sites-available/example.com.conf
次のコンテンツを追加します:
<VirtualHost 127.0.0.1:8088> ServerName 127.0.0.1 ServerAdmin [email protected] DocumentRoot /var/www/html/example.com DirectoryIndex info.php <FilesMatch \.php$> # 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost" </FilesMatch> <Directory /var/www/html/> Options FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> CustomLog /var/log/apache2/access.log combined ErrorLog /var/log/apache2/error.log </VirtualHost>
終了したらファイルを保存して閉じ、次のコマンドでApache仮想ホスト構成ファイルを有効にします。
a2ensite example.com.conf
次に、Apacheサービスを再起動して、変更を適用します。
systemctl restart apache2
この時点で、Apache Webサーバーが構成され、ポート8088のローカルホストでリッスンしています。
ステップ5–FastCGIキャッシュを使用してNginxをリバースプロキシとして構成する
このセクションでは、NginxをApache Webサーバーのリバースプロキシとして構成し、FastCGIキャッシュを有効にします。
まず、次のコマンドを使用してNginxWebサーバーをインストールします。
apt-get install nginx -y
インストールしたら、新しいNginx仮想ホスト構成ファイルを作成します。
nano /etc/nginx/sites-available/example.com.conf
次のコンテンツを追加します:
# Enable FastCGI Support proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:100m max_size=1g inactive=60m use_temp_path=off; fastcgi_cache_key "$scheme$request_method$host$request_uri"; add_header X-Cache $upstream_cache_status; server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location = /favicon.ico { access_log off; log_not_found off; } set $skip_cache 0; #Disable caching for login session, user cookie, POST request, query string, site map and feeds if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } # Enable caching for your website. location / { proxy_pass http://127.0.0.1:8088; proxy_set_header Host $host; proxy_buffering on; proxy_cache nginxcache; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; proxy_cache_valid 200 301 302 60m; proxy_cache_min_uses 1; proxy_cache_lock on; } }
終了したらファイルを保存して閉じ、次のコマンドでNginx仮想ホストファイルを有効にします。
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
次に、Nginxサービスを再起動して、変更を適用します。
systemctl restart nginx
ステップ6–NginxFastCGIキャッシュをテストする
この時点で、Nginxは、FastCGIキャッシュをサポートするApacheのリバースプロキシとしてインストールおよび構成されています。キャッシュが機能しているかどうかを確認するときが来ました。
Webブラウザーを開き、URLhttp://example.comを使用してNginxWebサーバーにアクセスし、ページを数回リロードします。
次に、ターミナルを開き、次のコマンドを実行してhttp応答ヘッダーをフェッチします。
curl -I http://example.com
次の出力が得られるはずです:
HTTP/1.1 200 OK Server: nginx/1.14.0 (Ubuntu) Date: Fri, 24 Apr 2020 17:01:42 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Cache: HIT
上記の出力から、 X-Cache:HIT 応答がキャッシュから提供されたことを示します。
結論
上記のガイドでは、Apache Webサーバーをバックエンドサーバーとしてインストールし、NginxをFastCGIキャッシングを備えたフロントエンドサーバーとして構成しました。うまくいけば、この設定によってWebサーバーのパフォーマンスが劇的に向上します。今すぐAtlantic.NetのVPSホスティングを使用してLAMPサーバーでFastCGIキャッシングを開始してください!