ホームページ > ウェブフロントエンド > フロントエンドQ&A > Webフロントエンドデプロイメントnodejs

Webフロントエンドデプロイメントnodejs

王林
リリース: 2023-05-23 14:55:07
オリジナル
943 人が閲覧しました

現在、フロントエンド開発はますます人気が高まっており、この分野に携わるプログラマーが増えています。同時に、フロントエンド開発者に対して、Web フロントエンド開発、Node.js バックエンド開発、デプロイメント、監視などのプロジェクトでより多くの責任を負うことへの需要が高まっています。

この記事では、実際の運用環境で使用できる Node.js サービスをデプロイする方法に焦点を当てます。 Web フロントエンドの分野で開発したい場合は、これが良い出発点になります。

ステップ 1: サーバーを準備する

Node.js をインストールする前に、Ubuntu サーバーを準備する必要があります。このサーバーを使用して Node.js アプリケーションを実行します。

OpenShift や Heroku などのクラウド コンピューティング プラットフォームを使用すると、Node.js プログラムの実行が非常に簡単になります。ただし、この記事では、プライベート サーバーをすでに取得して構成していることを前提とします。

ステップ 2: Node.js をインストールする

Node.js をインストールするには、apt パッケージ マネージャーを使用します。 Node.js と npm (node.js パッケージ マネージャー) をインストールする必要があります。次のコマンドを実行して、Node.js を Ubuntu サーバーにインストールします:

sudo apt-get update
sudo apt-get install nodejs npm
ログイン後にコピー

場合によっては、nodejs パッケージと nodejs-legacy パッケージを個別にインストールする必要があることに注意してください:

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy npm
ログイン後にコピー

インストールが完了したら、次のコマンドを使用して Node.js のバージョンを確認できます。

nodejs -v
ログイン後にコピー

このコマンドにより、インストールした Node.js のバージョン番号が出力されます。

ステップ 3: ファイアウォール アクセスを設定する

Node.js サービスが外部からアクセスできることを確認する必要があります。サーバーのファイアウォール ポートを開いて、他のサーバーからアクセスできるようにします。

デフォルトでは、Ubuntu サーバーには ufw ファイアウォールが付属しています。アプリケーションへの外部アクセスを許可するには、TCP トラフィックをホストに送信する必要があります。次のコマンドを実行してポートを開きます。

sudo ufw allow 8080/tcp
ログイン後にコピー

これらのポートは Web サービスの共通ポートであるため、多くの場合、ポートを意味のあるポート番号 (つまり、80 または 443) に送信する必要があります。ただし、簡潔にするために、ここではポート 8080 を選択します。アプリケーションが適切に実行されたら、このポートに移行できます。

ステップ 4: アプリケーションを作成する

Node.js アプリケーションをデプロイするには、簡単なサンプル アプリケーションを作成する必要があります。お気に入りのエディターを開き、app.js というファイルを作成します。そこに次のコンテンツを追加します。

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World
');
}).listen(8080);

console.log('Server running at http://YOUR_IP_ADDRESS:8080/');
ログイン後にコピー

ここで、YOUR_IP_ADDRESS はサーバーの IP アドレスです。

Node.js と npm をインストールした後、次のコマンドを入力して http パッケージをアプリケーションにインストールします:

npm install http
ログイン後にコピー

これらのコードは何を意味しますか?実行時にすべての受信トラフィックをポート 8080 でリッスンする単純な HTTP サーバーを作成しています。すべてのリクエストに対して、サーバーは「Hello World」で応答します。

サーバーによって使用されている IP アドレスとポート番号を表示する console.log ステートメントをコードに追加しました。アプリケーションを実行すると、ターミナルに次の出力が表示されます。これは、アプリケーションが実行されているかどうか、どの URL にアクセスされているかを確認するのに役立ちます。

ステップ 5: アプリケーションを実行する

アプリケーションの準備ができたので、実行しましょう。ターミナルに戻り、app.js ファイルが存在するディレクトリに移動します。そこで、次のコマンドを入力できます:

node app.js
ログイン後にコピー

これにより、アプリケーションが起動します。アプリケーションはバックグラウンドで実行され、サーバーのポート 8080 で実行を開始します。ブラウザーの IP アドレス、または GET リクエストとしてのcurlコマンドのIPアドレスにより、「Hello World」が送信されます。

ステップ 6: 永続性を設定する

コマンドを使用してサーバー上でアプリケーションを起動するのが一般的ですが、実際の運用環境では、サーバー管理ツールに頼らなければならない場合があります。プロセスの自動化と監視。

サーバーの再起動後に毎回アプリケーションが自動的に開始されるようにするには、Systemd サービスを作成する必要があります。 Systemd は、多くの Linux ディストリビューションで使用されている初期化システムで、システム プロセスの管理と監視の両方ができます。

これを行うには、Ubuntu で次のコマンドを入力します。

sudo nano /etc/systemd/system/YOUR_APP.service
ログイン後にコピー

YOUR_APP をアプリケーションの実際の名前に置き換えてください。ファイルに次の内容を追加します。

[Unit]
Description=YOUR_APP
After=syslog.target network.target

[Service]
Environment=NODE_PORT=8080
Type=simple
User=YOUR_USERNAME
ExecStart=/usr/bin/node /path/to/your/app.js
Restart=on-failure

[Install]
WantedBy=multi-user.target
ログイン後にコピー

上記のコードでは、次の変更が必要です。

-YOUR_APP: アプリケーションの名前

-NODE_PORT: アプリケーションリスニング ポート

- YOUR_USERNAME: サービスを実行するユーザー

- /path/to/your/app.js: アプリケーション ファイルへの実際のパス

次へ、Systemd をリロードしてカスタム サービスを開始する必要があります。次のコマンドを入力して、ファイルを正しいディレクトリにコピーし、サービスをリロードします。

sudo systemctl daemon-reload
sudo systemctl enable YOUR_APP
sudo systemctl start YOUR_APP
ログイン後にコピー

この時点で、アプリケーションは Systemd で起動するように構成されています。次のコマンドを使用して、アプリケーションのステータスを表示できます。

sudo systemctl status YOUR_APP
ログイン後にコピー

ステップ 7: カスタム コマンドを実行する

これで、Systemd を使用して、サーバーの再起動後にアプリケーションを自動的に実行できるようになります。ただし、Systemd 管理を使用して、特定の時間内に実行されるコマンドをカスタマイズすることもできます。

たとえば、次のコマンドを使用して、更新プログラムの展開中にアプリケーションをシャットダウンできます:

sudo systemctl stop YOUR_APP
ログイン後にコピー

次に、更新が完了したら、アプリケーションを再起動します:

sudo systemctl start YOUR_APP
ログイン後にコピー

これで、実際の運用環境に Node.js アプリケーションをデプロイできました。これは、開発者や顧客がアプリケーションにアクセスできるようにするための優れた出発点です。

以上がWebフロントエンドデプロイメントnodejsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート