Apacheは最も人気のあるWebサーバーです。また、Node.jsなどのバックエンドを実行するアプリケーションのフロントエンドプロキシサーバーとしてApacheを使用することもできます。このチュートリアルは、ApacheサーバーをNode.jsアプリケーションのフロントエンドプロキシサーバーとして簡単な手順でセットアップするのに役立ちます。
開始前
- DigitalOceanでホストされているUbuntu18.04インスタンスを使用しています。
- このLinuxマシンにこのチュートリアルを使用して、最新のNode.jsバージョンをインストールしました。
ステップ1-サンプルノードアプリケーションを作成する
ここにいるので🙂いくつかのポートで実行中のNode.jsアプリケーションが必要です。アプリケーションをポート3000で実行していることを前提としています。デモンストレーションの目的で、Node.jsでサンプルWebアプリケーションを作成し、ポート3000で実行します。これにより理解しやすくなります。
nano myapp.js
次に、JavaScriptファイルに次のコンテンツを追加します。
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World'); }).listen(3000, "127.0.0.1"); console.log('Server running at http://127.0.0.1:3000/');
Nodeアプリケーションはポート3000で提供する準備ができています。Node.jsアプリケーションをバックグラウンドで起動しましょう。
node myapp.js &
そして、ブラウザでこれにアクセスします。以下のような結果が表示されます:
ステップ2–Apacheサーバーをインストールする
次に、デフォルトのパッケージマネージャーを使用してApacheWebサーバーをインストールします。 UbuntuおよびDebianベースのシステムはaptを使用し、FedoraおよびCentOS / RHEL 8はDNFを使用し、CentOS /RHEL7/6はyumを使用します。 Apacheパッケージは、ほとんどのオペレーティングシステムのデフォルトのリポジトリで利用できます。
sudo apt install apache2
### Debians based systems sudo dnf install httpd
### Fedora & CentOS 8
Apache Webサーバーのインストール後、プロキシモジュールを有効にしておく必要があります。このモジュールは、rpmパッケージを使用してインストールしたユーザーのApacheで有効になっています。有効にしていない場合は、Apache構成を編集します /etc/httpd/conf/httpd.conf またはApache2.4の場合/etc/httpd/conf.modules.d/00-proxy.conf 次の行をファイルしてコメントを外すか、ファイルに入れます。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
Debianベースのシステムの場合、次のコマンドを使用して、Apacheでプロキシモジュールを有効にします。
sudo a2enmod proxy proxy_http
ステップ3–ApacheVirtualHostを構成する
Node.jsデモサーバーを構成して実行したので。次に、ApacheWebサーバーで構成を開始します。 / etc / apache2 / sites-available /の下にドメインの仮想ホスト構成ファイルを作成します ディレクトリ。
### Debian based system's sudo nano /etc/apache2/sites-available/example.com.conf
### Redhat based system's sudo vim /etc/httpd/conf.d/example.com.conf
次のコンテンツを追加します。
Apache1234567 | |
構成を作成したら、次のコマンドを使用してApacheWebサーバーを再起動します。
### Debian based system's sudo a2ensite example.com
sudo systemctl restart apache2
### Redhat based system's sudo systemctl restart httpd
ステップ5–セットアップの確認
ドメイン名を使用してサーバーにアクセスすると、同じページが http://127.0.0.1:3000/に表示されます。 。
結論
Node.jsアプリケーションをバックエンドするためのApacheプロキシの構成を完了しました。または、Nginxはプロキシサーバーとしてのパフォーマンスが優れているため、Apacheに縛られていない場合は、Nginxプロキシサーバーを使用してください。