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

推薦する

Python Flask WeChat アプレットのログインプロセスとログイン API 実装コード

1. まずは効果を見てみましょうインターフェース要求によって返されるデータ: 2. 公式ログインフロ...

読み込み進捗バーのネイティブ JS 実装

この記事では、ネイティブ JS によって実装された動的読み込みプログレス バーの特殊効果を紹介します...

Linux テキスト検索コマンド find の詳細な使用方法

find コマンドは主にディレクトリやファイルを検索するために使用され、一致のために複数のパラメータ...

JavaScript ベースのシンプルな計算機の実装

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

MySql における特殊演算子の使用の概要

序文MySQL には次の 4 種類の演算子があります。算術演算子比較演算子論理演算子ビット演算子これ...

一時ファイルを作成できないために MySQL が起動できない問題を解決する方法

問題の説明最近、仕事中に問題が発生しました。MySQL が起動に失敗しました。エラー ログは次のとお...

503 サービス利用不可エラーの解決方法の説明

1. Webページを開くと503サービス利用不可が表示されますが、更新すると正常にアクセスできます。...

構造とプレゼンテーションの分離を理解するためのWeb標準の学習

Web 標準について議論するときに必ず話題になるのは、構造とプレゼンテーションを分離することの重要性...

WindowsでMysql5.7.17のインストールと起動に失敗する問題を解決する

マシンに初めて MySQL をインストールします。オペレーティングシステムはwin7ですmysqlの...

NginxはURLのパスに応じてアップストリームに動的に転送します

Nginx では、URL のパス パラメータに基づいて、到達不可能なアップストリームに動的に転送する...

Vueのトランジションとアニメーションの深い理解

1. DOM要素を挿入、更新、または削除するときに、適切な場合は要素にスタイルクラス名を追加します。...

HTMLテキストオーバーフローの2つの一般的な解決策は省略記号を表示することです

方法1: CSSオーバーフロー省略を使用して解決する解決策は次のとおりです。 CSSコード: ディス...

Linux で nginx を起動および再起動する方法

Nginx (エンジン x) は、IMAP/POP3/SMTP サービスも提供する高性能 HTTP ...

vue-seamless-scrollがスクロールしていいねをするときのデータ同期の問題を解決する

VUE は vue-seamless-scroll を使用して、自動的にスクロールしていいねします。...

CSS と JS を使用して下線効果を実装する方法の例

この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...