express nginxへの配備


nginxにexpressを配布しました.expressはノードサーバとして使用され、現在はクライアントのインデックスにすぎません.htmlとindex.jsでホームページに適したデータに加工し,伝達の役割を果たす.特にコインを受け取ったり、ユーザーを確認したり、ユーザーに合ったデータを加工したりしていません.もうすぐやります.
戻るとnginxにエージェントを設定し、リクエストを受信したときにexpressで送信します.
location / {
proxy_pass http://127.0.0.1:3006;
}
ブログにはいろいろな設定がありますが、何の設定なのか分からないので、いらないと思ったら使いません.使う理由を知ってから使います.
受信したリクエストは、3006に設定されたexpressの3006ポートにすべて接続されます.本当は3000回使いたかったのですが3000回は反応器で使うので3006回使っても大丈夫でしたもう3000回回りましょう
これでexpressで構築したファイルをnginxで設定したルートフォルダに移動するだけです.ローカルのファイルを移動する方法が分かりません.私はグーグルを遊んで、scpコマンドを通過できることに気づいた.scpはセキュリティコピーと呼ばれます.何度かやってみたが、成功せずに楽屋に助けを求め、バカみたいにec 2でローカルからec 2に移る命令を続けた.現地ではすぐに解決しました.
scp -i [pem file] [upload file] [user id]@[ec2 public IP]:~/[transfer address]
フロントはdist、ノードサーバはdist-serverを使用しています.dist-server上のインデックス.jsが割り当てられています.今はnode index.jsで終わると思っていました.
しかし、対応するコマンドを入力すると、モジュールに存在しないエラーが発生します.ちょっとうろたえるけどcommonJSのrequireは同期の意味でしょうか….感じました.つまり、Webパッケージでtarget: nodeに設定して構築を実行すると、必要なモジュールが必要に応じて提供されていることがわかります.すなわち,node環境ではnode modulesが存在しなければならない.これによりnode modulesにアクセスし、対応するモジュールを取得できます.

デフォルト値target: webの場合、構築中に必要なすべてのモジュールが受信され、コードとして生成されます.そうしないと、直接importとしてアクセスできず、ブラウザでimportがscriptのようにネットワークリクエストに接続されるため、大量のリクエストが発生します.
したがって、dist-serverフォルダにnode modulesがインストールされ、正常に実行されました.
しかし、問題はまた来た.必要なファイルdistフォルダのindex.htmlをロードできません.パス設定エラー.dirnameを使用してパスを正確に表示します.
dirnameの概念がまだ不足していることがわかりました.ファイルが存在する場所.そしてパス決議によってルートを合わせた.
path.resolve(__dirname, '../dist/index.html');
resolveは後ろからパスを読み始めるそうです.そして/フォルダ名に遭遇した場合は、すぐに閉じます.すなわち、上記のpath.resolve(__dirname, '/dist/index.html');では、経路は/dist/indexである.htmlになります.ただし、dist-serverにはdistフォルダがないため、問題が発生します.だから...まだ置いてあります.
joinを使うのも同じ結果になるはずです.しかし、解決策が使われていることは明らかではありません.反省しています.joinはresolveほどきつくなく、少し慈悲深いようです.絶対パスに遭遇してもマージされます.
すなわち,resolveは絶対経路,joinは相対経路である.
このようにスムーズに経路登録ができ、運行は無事終了しました.
うん.バビコンはありません.これはいったいどういうことですか.リンクタグにFaviconが登録されているのに、サーバにFaviconが登録されています.pngも確認できます.しかし、要求しない.このような話にならない状況に耐えられなくなった.
Google検索をしてみると、スタックオーバーフローで私と同じように悩んでいる人がいることに気づきました.しかし、完全に理解することはできません.
https://stackoverflow.com/questions/34918906/no-request-for-favicon
クロムの問題かどうか分かりません.この部分はもっと勉強する必要があるかもしれません.どうしても理解できません.😭😭😭 いずれにしても、私たちはルートを変えるべきだと思います.それなら、faviconもcdnに移行しました.しかも動作が上手です.ec 2を閉じる前にすべてが順調だったと思います.
ec 2でnodeを実行し、ec 2を終了しても実行を継続できると思います.しかしec 2をオフにすると、サーバも一緒にオフになります...少し分かりましたが、24時間サーバーを維持するためにpm 2をインストールする必要があります.
pm 2はprocessmanagerの略で、ノードサーバの管理を担当しています.ノードサーバを開くと、ノードサーバがどのようなリクエストを受信したのか、およびどのくらいのリクエストがあったのかをリアルタイムで確認できることは理解できます.24時間サーバーをオープンするにはpm 2が必要らしい.
pm 2,pm 2 start indexをグローバルにインストールします.jsコマンドを入力するだけで実行が完了します.node.jsは単一スレッドで、pm 2でマルチスレッドを駆動できるそうです.実は意味がよくわかりませんJavaScriptとは全く違う世界のようですが….こちらも早く勉強しなければいけないと切に感じています.
これですべての設定が完了し,サーバからデータを受信しhtmlを構成するコードを記述するだけでよい.配備が終わり、コードを書くだけでいいので気持ちがいいです.
まだジェンキンスのCDがセットされていないので怖いですが、どうすればいいか考えています.
大まかな手順は次のとおりです.
botobo.kr接続逆プロキシロールnginxからフロントエンドサーバ(nginx)に接続フロントエンドサーバ上でローカルサーバexpress接続expressに逆プロキシでアクセスするコード、インデックスを実行します.応答html
app.use(express.static)でexpressにアクセスすると、リクエストに対応するファイルが含まれている場合に送信されます.