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 の時間タイプとモードの詳細

目次1. MySQL の時刻型2. タイムゾーンを確認する3. 不正な時間値4. 厳密モード5. 事...

ホストNginx + Docker WordPress Mysqlを設定するための詳細な手順

環境Linux 3.10.0-693.el7.x86_64 Docker バージョン 18.09.0...

nginx リバース プロキシの魔法のスラッシュについての簡単な説明

nginx リバース プロキシを設定する場合、location と proxy_pass のスラッシ...

MySQL の高度な機能 - データ テーブル パーティショニングの概念とメカニズムの詳細な説明

目次パーティション分割メカニズムSELECTクエリINSERT操作DELETE操作更新操作パーティシ...

MySQL Shell import_tableデータインポートの実装

目次1. import_tableの紹介2. データのロードとテーブル関数のインポートの例2.1 L...

vue の v-bind を理解する

目次1. v-bindの主要ソースコードの分析1. v-bind属性はどこに均一に保存されるか: a...

Linux での SELinux を理解する方法

目次1. SELinux の紹介2. SELinuxの基本概念2.1 仕事の種類2.2. セキュリテ...

HTMLは角丸四角形を簡単に実装します

質問: div+css と配置を使用して角丸四角形を実現するにはどうすればよいですか?ソリューション...

JavaScript オブジェクト指向クラス継承ケースの説明

1. オブジェクト指向のクラス継承これまでの章では、JavaScript のオブジェクト モデルがプ...

mysql 8.0.16 winx64 および Linux でルート ユーザーのパスワードを変更する方法

データベースへの接続などの基本的な操作はご自身で行ってください。この記事ではパスワードの変更方法を中...

CSS3 フィルターを使用して PNG 画像の色を変更するサンプル コード

この方法は、CSS3のdrop-shadow filterを使用して、png画像の不透明部分に任意の...

HTML a タグの href 属性を使用して相対パスと絶対パスを指定する方法

実際のWeb開発では、画像の挿入やCSSファイルなどすべてパスが必要となります。ファイルパスを誤って...

MySQLデータベースのQPSとTPSの意味と計算方法

DB ベンチマーク テストを実行する場合、qps と tps はデータベースのパフォーマンスを測定す...

Windows で MySQL データベースを別のディスクに移動する

序文今日、MySQL をインストールしたところ、データベース ストレージがデフォルトで C ドライブ...

MySQLのスローログの開き方と保存形式の詳細な分析

開発プロジェクトでは、MySQL のスロークエリログを通じて効率の問題のある SQL を監視できます...