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

推薦する

Mac OS 10.11 での MySQL 5.7.12 のインストールと設定のチュートリアル

Mac OS 10.11 に MySQL をインストールして設定する方法を、主に写真を使って手順を簡...

ホバードロップダウンメニューを実装するためのネイティブJS

JS はホバー ドロップダウン メニューを実装します。これは、フロントエンドの面接で遭遇するシナリ...

jQuery はラブエフェクトをクリックする

この記事では、jQueryのクリック時のラブエフェクトの具体的なコードを参考までに共有します。具体的...

docker CMD/ENTRYPOINT が sh スクリプトを実行する問題の解決策: not found/run.sh:

Dockerfile の設定に問題はありませんが、ENTRYPOINT コマンドを実行するとエラー...

Linux ファイアウォール設定の詳細な手順 (yum ウェアハウス設定に基づく)

序文この実験では、デバッグ用に2つの仮想マシン(CentOs6とRed Hat 6)を準備します。 ...

Element UI をインストールして vue3.0 でベクター グラフィックスを使用する方法

ここでは、v3 のインストールと使用にのみ焦点を当てます。v2 について学びたい場合は、公式 Web...

MySQL 5.7.25 のインストールと設定方法のグラフィックチュートリアル

MySQL インストール ファイルには、msi 形式と zip 形式の 2 種類があります。クリック...

Div CSS 命名標準 CSS クラスの命名規則 (SEO 標準に準拠)

検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...

js SMS認証コード入力ボックスを手動で実装する

序文この記事では、私が手動で実装したフロントエンドの一般的な SMS 認証コード入力コンポーネントと...

HTMLでのフォーム送信の実装

フォーム送信コード1. ソースコード分析 <!DOCTYPE html> <htm...

ウェブデザインの教育または学習プログラム

セクションコース内容営業時間1 ウェブデザインの概要2 2 HTML 基本タグとフォーマットタグ 2...

Vueのリストレンダリングの詳細な説明

目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...

発生したブラウザの互換性の問題と解決策(推奨)について

序文:先週の日曜日、先輩から3ページ作るのを手伝って欲しいと頼まれました。データのやり取りなどはなく...

MYSQL は、指定されたユーザーのランキングとクエリを実装します。ランキング関数 (並列ランキング関数) のサンプルコード

序文この記事は主に、MYSQL でランキングを実現し、指定ユーザーランキング関数 (並列ランキング関...

HTML の大なり、小なり、スペース、引用符などでよく使用されるエスケープ コードのリスト。

表は以下のとおりです。 HTMLソースコード結果を表示説明する&lt; <未満記号また...