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 の解凍バージョンをインストールするときに遭遇する落とし穴 (推奨)

推薦する

Vue3.0はドロップダウンメニューのカプセル化を実装します

Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...

Zabbixのインストールと展開の詳細な説明

序文Zabbix は最も主流のオープンソース監視ソリューションの 1 つです。導入自体は難しくありま...

シェルスクリプトを使用して Docker サービスを一括で開始および停止する

目次Dockerを起動するDockerを停止するPython 呼び出しスクリプト最近、日々のテストで...

DockerはGitを使用してJenkinsのリリースとテストプロジェクトの詳細なプロセスを実装します

目次1. Dockerをインストールする2. カスタムネットワークアドレスを作成する3. Docke...

MySQL Limitパフォーマンス最適化とページングデータパフォーマンス最適化の詳細な説明

MySQL Limit はセグメント内のデータベース データをクエリでき、主にページングで使用されま...

ReactのuseEffectクロージャの落とし穴についての簡単な説明

問題コードuseEffectによって発生したクロージャの問題コードを見てみましょう 定数 btn =...

MySQL数千万の大規模データに対する30のSQLクエリ最適化テクニックの詳細な説明

1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...

Linux におけるドライバモジュールのパラメータ転送プロセスの分析

ドライバーモジュールに渡すパラメータ名、タイプ、権限を宣言します。 module_param(変数名...

HTML 縦列表示テキストを使用してテキストを縦列で表示します

コードをコピーコードは次のとおりです。 <span style='display:bl...

Dockerデータのバックアップとリカバリプロセスの詳細な説明

データのバックアップ操作は非常に簡単です。次のコマンドを実行します。 docker run --vo...

親要素に対する CSS 子要素の配置の実装

解決親要素に position:relative を追加します。子要素に position:abso...

時間のかかるMySQLレコードのSQL例の詳細な説明

mysqlは時間のかかるSQLを記録しますMySQL は、最適化と分析のために、時間のかかる SQL...

Vue-cli4 ルーティング構成の詳細な理解

目次序文 - Vue ルーティング1. 最も基本的なルーティング構成1. router/index....

JavaScriptエンジンV8の実行プロセスの詳細な説明

目次1. V8ソース2. V8サービスターゲット3. V8の初期アーキテクチャIV. V8の初期アー...

HTMLでカスタムタグを使用する方法

カスタム タグは XML ファイルと HTML ファイルで自由に使用できますが、いくつか注意すべき点...