NodeサイトのForever+nginx導入方法例

NodeサイトのForever+nginx導入方法例

私は最近、最も安い Tencent クラウド サーバーを購入しました。これは主に、Web テクノロジを完全に理解して習得するために、個人ブログを展開し、Linux の知識を習得するために使用されています。フロントエンド担当者は独自のサーバーを持つことを強くお勧めします。この記事を書く前に、私のクラウド サーバーにはすでに Mysql、node、nginx などがインストールされていました。ノードウェブサイトの展開を例に挙げて、いくつかの一般的なシナリオを説明しましょう。

スレッドは永続的に実行される

一般的に、ウィンドウ cmd 上の node index.js を通じてサーバーを起動します。閉じられていない限り、いつでもインターフェイスにアクセスして呼び出すことができます。ただし、Linux では、長時間操作を行わない場合や、他の操作を実行したい場合、ノード サービスが切断され、ユーザーは Web サイトにアクセスできなくなります。何をするか?この問題を解決するには、forever モジュールをインストールできます。

npm install forever -g // foreverモジュールをグローバルにインストールする

元の起動メソッドnode index.jsをforever start index.jsに変更するだけです。一般的なコマンドをいくつか紹介します。

forever list // 現在実行中のサービスをすべて一覧表示します forever start -w index.js // ファイルの変更時に自動的に再起動します forever stopall // すべてのサービスを停止します forever stop app.js // ノード アプリの 1 つを停止します 
forever stop [id] // forever listは対応するidを見つけ、

もちろん、他にも多くのコマンドがありますので、関連するモジュールを参照してください。一般的に言えば、最も簡単な使用方法は次のとおりです。

永遠にindex.jsを起動する

このように、他の Linux パスに切り替えたり終了したりしても、ノード サービスは存在し続けるため、他のユーザーが引き続き Web サイトにアクセスできるようになります。

nginxの設定

nginx はロシア人によって開発されたリバース プロキシ サーバーであり、現在では世界中の多くの企業で使用されています。 nginx の紹介とインストールについては、自分で情報を読んだり、初心者向けチュートリアルからすぐに学ぶことができます。ここで私の Linux にはすでに nginx がインストールされています。

次に、forever start index.js によって開始された http://localhost:8089 を nginx でプロキシし、自分のドメイン名を通じて Web サイト http://localhost:8089 にアクセスします。nginx 構成ファイルのパスを表示します。

nginx.conf を検索/-name 

これに切り替えて内部の設定を変更してください

 サーバー{
  listen 80; # リスニングポートを80に設定するだけです server_name hellocode.xyz; # ドメイン名を入力すると、http://localhost:8089にジャンプします
  /etc/nginx/default.d/*.conf を含めます。
  位置 / {
   proxy_pass http://118.89.33.75:8089; # ノードのウェブサイトアプリケーション}
  エラーページ 404 /404.html;
    場所 = /40x.html {
  }
  エラーページ 500 502 503 504 /50x.html;
    場所 = /50x.html {
  }
}

終了して設定が正しいかどうかを確認します

nginx -t 

nginxをリロードする

nginx -s リロード

ブラウザを開いてURLを入力し、ウェブサイトにアクセスしてください。

アクセスプロセス中にクロスドメインの問題が発生する可能性があるため、ノード側をクロスドメインをサポートするように設定する必要があります。エクスプレスフレームワークの場合は、index.jsでミドルウェアをカスタマイズします。

var allowCors = function(req, res, next) {
 res.header('Access-Control-Allow-Origin', req.headers.origin);
 res.header('アクセス制御許可メソッド', 'GET、PUT、POST、DELETE、OPTIONS');
 res.header('アクセス制御許可ヘッダー', 'コンテンツタイプ');
 res.header('アクセス制御許可資格情報','true');
 次();
};
app.use(allowCors); //クロスドメインミドルウェアを使用する

クロスドメインの問題に関しては以下のブログで詳しく説明します!

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Node.js サイトのリバース プロキシとして Nginx を使用する場合の GZip 圧縮の設定に関するチュートリアル
  • Nginx を放棄し、Node.js をリバース プロキシ サーバーとして使用する
  • Nginx+SSL+Node.js 動作環境設定チュートリアル
  • Nginx を Node.js のリバース プロキシとして使用する方法
  • nginx + nodeを使用してAlibaba Cloudにhttpsをデプロイする詳細な手順
  • Node.js のフロントエンドサーバーとして Nginx を設定する方法の概要

<<:  React 関数コンポーネントのパフォーマンス最適化のアイデアの詳細な説明

>>:  MySQL 5.7.20 の解凍バージョンをインストールするときに遭遇する落とし穴 (推奨)

推薦する

MySql の集計関数に条件式を追加する方法

MySQL のフィルタリングのタイミングは、集計関数で使用される where 条件と having ...

CSS スタイルのリセットとクリア (異なるブラウザで同じ効果を表示するため)

異なるブラウザ間でページの表示を一致させるためには、フロントエンド開発において CSS スタイルのク...

ミニプログラムはミニプログラムクラウドを使用してWeChatの支払い機能を実装します

目次1. WeChat Payを開く1.1 アフィリエイト加盟店番号1.2 加盟店番号を追加する1....

Nginx 静的サービス設定の詳細な説明 (ルートとエイリアスの指示)

静的ファイルNginx は高いパフォーマンスで知られており、フロントエンドのリバース プロキシ サー...

mysql57サービスが突然消えた問題をすぐに解決する

1つ、 G:\MySQL\MySQL Server 5.7\bin> mysqld --ini...

MySQL の binlog ログと、binlog ログを使用してデータを回復する方法を説明します。

ご存知のとおり、binlog ログは MySQL データベースにとって非常に重要です。万が一、データ...

CSS におけるスタックコンテキストの具体的な使用法

序文一部の CSS 相互作用の影響により、要素に設定されたz-index実際のサイズに応じて重ね合わ...

MySQL FAQ シリーズ: ibdata1 ファイルのサイズが突然増加しないようにする方法

0. はじめにibdata1 ファイルとは何ですか? ibdata1 は、innodb システム テ...

画像の半透明処理 画像と半透明の背景の実装のアイデアとコード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

MySQLはtruncateコマンドを使用してデータベース内のすべてのテーブルを素早くクリアします

1. まずSELECT文を実行して、すべての切り捨て文を生成します。ステートメント形式: selec...

フィルターと固定間の競合の原因と解決策の詳細な説明

問題の説明body内でfilter属性を使用すると、 fixed要素の位置が不正確になります。つまり...

MySQL SHOW STATUSステートメントの使用

MySQL のパフォーマンス調整とサービス ステータスの監視を行うには、MySQL の現在の実行状態...

Centos7 システム上の nginx サーバーで Phalcon 環境を構築する方法の詳細な説明

この記事では、centos7 システムの nginx サーバーの下に phalcon 環境を構築する...

MySQLクエリの文字セットの不一致の問題を解決する方法

問題を見つける最近、仕事で問題が発生しました。MySQL データベースにテーブルを作成するときに、ラ...

シンプルなドラッグ効果を実現するJavaScript

この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...