AzureプラットフォームやVisual Studioに込み入って何かを忘れてしまったのか不思議です。シンプルなウェブサイトのフロントエンドとノードのバックエンドをAzure Web Appに移行する
Visual Studioに2つのプロジェクトがあります(これはlinkと同じです)プレーンなHTML/JS/CSSウェブサイトのフロントエンドとnode.jsサーバーのバックエンドが情報をパイプします。すべての機能はローカルでテストするときにVS内で期待するように機能します(ノードバックエンドはAzureの他のリソースにリクエストを出して結果を返す)が、私の人生にとってはこれを公開する簡単な方法はないようですフロントエンドとバックエンドを1つのAzure Web Appにインストールすることができます。これは、起動時にアプリケーションサービスがサーバーに独自のポートを割り当てるためです(バックエンドでノックすることができない静的ポートなし)。
明白なことが明白でないか、Webアプリケーションサービスであまりにも多くのことをやろうとしていて、バックエンドをVMや他のサービスに壊す必要がありますか?上記のようにリンクをコンパートメント化することはできましたが、ルートWebサイトで設定されているデフォルトのランディングページ以外の場所にpingまたは投稿することはできません。
編集:私は本当にどこかに間違った方向に回ってしまったのかと本当に思っています。基本的なノードアプリ:
var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World on port:' + port);
}).listen(port);
戻り
Hello World on port:\\.\pipe\a1f43073-e979-4a8b-b4ec-ec226b4760f8
編集2:いくつかの掘削が有益であるhttps://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#network-endpoint-listeningにつながっています。しかし、それはまだ示唆:ローカルアドレスへ
接続試行(例えばローカルホスト、127.0.0.1)とマシン自身のIPが失敗し、を除いて同じサンドボックス内の別のプロセスがリスニングソケットを作成している場合宛先ポート上で
だから、私が読んでいるのであれば、私のノードサーバーによって開始されたプロセスはリッスンソケットを作成するべきですか?ローカルホストかもしれない?私はこれを進めるとアップデートを投稿しますが、アドバイスや提案はまだ歓迎しています。
編集3:バックエンド操作をトリガーするルーティングを使用してフロントエンドをExpressフレームワークプロジェクトにラップすることで、私の問題を当面解決しましたが、これは理想とはほど遠いものです。私はnodejsのソケットでリッスンするサーバーを正常に起動できませんでした(さまざまなエラーコードが発生します)。誰かが、(同じ仮想ディレクトリまたは別個の仮想ディレクトリ内の)アプリケーション間で機能する内部のサンドボックス通信の例を持っていれば、私の環境ではないことを確かめることができます。時間が許せば自分のコードを掲示します。
ウェブアプリケーションはポート80と443のインバウンドトラフィックのみをサポートしています。 –
Azure Web Appは、いくつかのポートで「従来の」ウェブサイトを実行するのと同等のものですサーバーは、Webサイトからの呼び出しのために他のポートでリッスンするデータを要求することができます。これはリンクされた例の設定と似ています。 – 4xle
@ 4xle node.jsサーバーのバックエンドのデフォルトポート80を別のポートに変更したいですか? –