GNU/Linux >> Linux の 問題 >  >> Linux

Node.jsのフロントエンドプロキシとしてApacheを設定する方法

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 

次のコンテンツを追加します。

Apache
1234567 ServerName example.com ProxyPreserveHost On ProxyPass / http:// localhost:3000 / ProxyPassReverse / http:// localhost:3000 /

構成を作成したら、次のコマンドを使用して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プロキシサーバーを使用してください。


Linux
  1. Node.jsをDebian10にインストールし、Nginxをフロントエンドプロキシサーバーとして構成する方法

  2. LinuxでリバースプロキシとしてApacheTrafficServerを設定する

  3. CentOS/RHEL 7 で squid プロキシ サーバーをセットアップする方法

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

  2. Debian11でApacheのリバースプロキシとしてNginxを設定する方法

  3. Apacheを使用してUbuntuサーバーでWordPressをセットアップする方法

  1. FreeBSDにApacheをインストールする方法

  2. Fedora20にApacheをインストールする方法

  3. Debian7にApacheをインストールする方法