CentOS8でNginxをApacheのWebサーバーおよびリバースプロキシとして構成する方法

ご存知のように、ApacheとNginxはどちらも、世界中の無料のオープンソースで強力なWebサーバーです。 Apacheはそのパワーで知られていますが、Nginxはそのスピードで知られています。 どちらにもいくつかの欠点と利点があります。 NginxはPHP-FPMを使用してPHPファイルをロードしますが、ApacheはPHPを独自にロードします。 ApacheはWebサイトの動的部分に使用され、Nginxはグラフィック、CSS、jsファイルなどの静的ファイルを提供します。

両方を単一のサーバーで使用して、両方のメリットを享受することをお勧めします。 このチュートリアルでは、CentOS8でNginxをWebサーバーおよびApacheWebサーバーのリバースプロキシとして使用する方法を示します。

前提条件

  • CentOS8を実行しているサーバー。
  • サーバーIPを指すドメイン名。
  • ルートパスワードがサーバーに設定されます。

ApacheとPHPをインストールする

まず、サーバーにApacheWebサーバーとPHPをインストールする必要があります。 次のコマンドを使用してインストールできます。

dnf install httpd php php-cli -y

インストールが完了したら、次のコマンドを使用してApacheサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start httpd
systemctl enable httpd

ApacheWebサーバーを構成する

デフォルトでは、Apache Webサーバーはポート80でリッスンします。したがって、ポート8080でリッスンするようにApacheWebサーバーを構成する必要があります。Apacheメイン構成ファイルを編集することでこれを行うことができます。

nano /etc/httpd/conf/httpd.conf

以下に示すように、投稿を80から8080に変更します。

Listen 8080

ファイルを保存して閉じてから、Apacheサービスを再起動して変更を適用します。

systemctl restart httpd

次に、次のコマンドを使用してApacheリスニングポートを確認します。

ss -antpl | grep httpd

次の出力が得られるはずです。

LISTEN    0         128                      *:8080                   *:*        users:(("httpd",pid=1693,fd=4),("httpd",pid=1692,fd=4),("httpd",pid=1691,fd=4),("httpd",pid=1688,fd=4))

次に、ApacheWebルートディレクトリ内にinfo.phpファイルを作成します。

nano /var/www/html/info.php

次の行を追加します。

<?php phpinfo(); ?>

終了したら、ファイルを保存して閉じます。

次に、Webブラウザーを開き、URLにアクセスします http:// your-server-ip:8080 / info.php。 次のページが表示されます。

PHP情報

NginxWebサーバーをインストールします

次に、サーバーにNginxパッケージをインストールする必要があります。 次のコマンドでインストールできます。

dnf install nginx -y

Nginxがインストールされたら、次のコマンドを使用してNginxサービスを開始し、システムの再起動時に開始できるようにします。

systemctl start nginx
systemctl enable nginx

NginxをApacheのリバースプロキシとして構成する

ここで、ポート80からのすべてのリクエストをポート8080でリッスンしているApache Webサーバーに転送するために、Nginxをリバースプロキシとして構成する必要があります。

まず、次のコマンドを使用して、新しいNginx仮想ホスト構成ファイルを作成します。

nano /etc/nginx/conf.d/proxy.conf

次の行を追加します。

server {
    listen 80;
    server_name test.example.com;

    location ~ .php$ {
        proxy_pass http://your-server-ip:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

終了したら、ファイルを保存して閉じます。 次に、Nginx Webサーバーを再起動して、変更を適用します。

systemctl restart nginx

次に、Webブラウザーを開いて、URLにアクセスします。 http://test.example.com/info.php。 次のページが表示されます。

リバースプロキシ経由のPHP情報

ご覧のとおり、PHPはNginxWebサーバーによって提供されます。

結論

上記のガイドでは、NginxをApacheのWebサーバーおよびリバースプロキシとして構成する方法を学習しました。 これがあなたのウェブサイトのパフォーマンスを向上させるのに役立つことを願っています。

Hope this helps!

Source link