Azure 플랫폼이나 Visual Studio에 내재 된 뭔가를 놓쳤다는 것이 밝혀진 것보다 훨씬 쉬워졌습니다.간단한 웹 사이트 프론트 엔드와 노드 백엔드를 Azure Web App으로 옮기기
Visual Studio에서 두 개의 별도 프로젝트가 있습니다 (link과 유사) 일반 HTML/JS/CSS 웹 사이트 프론트 엔드 및 정보를 파이프하는 node.js 서버 백엔드. 모든 기능은 VS 내에서 로컬 (노드 백엔드가 Azure의 다른 리소스에 요청을 보내고 결과를 다시 얻음)을 테스트 할 때 예상대로 작동하지만 나에게있어이 작업을 게시하는 간단한 방법이없는 것 같습니다. 프론트, 백엔드를 하나의 Azure Web App에 추가 할 수 있습니다. 왜냐하면 앱 서비스는 서버를 부팅 할 때 서버에 자체 포트를 할당 할 것이기 때문입니다. (효과적으로 백엔드에서 노크 할 수없는 고정 포트없이).
분명히 분명하지 않은 부분이 있습니까? 아니면 웹 응용 프로그램 서비스를 너무 많이 사용하고 있으며 백엔드를 VM이나 다른 서비스로 나눌 필요가 있습니까? 링크에서 위와 같이 코드를 분류 할 수 있었지만 루트 웹 사이트에서 설정 한 기본 방문 페이지 이외의 다른 곳에서는 핑 (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 : 프런트 엔드를 백엔드 작업을 트리거하는 익스프레스 프레임 워크 프로젝트에 래핑하여 당분간 문제를 해결했지만 이것이 이상적인 방법은 아닙니다. nodejs의 소켓에서 수신 대기하는 서버를 성공적으로 시작할 수 없었습니다 (다양한 오류 코드가 발생 함). 누구든지 동일한 가상 디렉터리 또는 별도의 가상 디렉터리에있는 응용 프로그램간에 작동하는 내부 샌드 박스 통신의 예가 있으면 내 환경이 아니라는 것을 확인하기 위해 구축 할 수 있습니다. 나는 시간이 허락 할 때 내 코드를 게시 할 것이다.
포트 할당에 대해 무슨 뜻인지 모르시겠습니까? 웹 응용 프로그램은 포트 80 및 443의 인바운드 트래픽 만 지원합니다. –
Azure 웹 응용 프로그램은 일부 포트에서 '전통적'웹 사이트를 실행하는 것과 같습니다. 서버는 웹 사이트의 호출에 대해 다른 포트에서 수신하는 데이터를 요청할 수 있습니다. 이는 연결된 예제의 설정과 유사합니다. – 4xle
@ 4xle node.js 서버 백엔드의 기본 포트 80을 다른 포트로 변경 하시겠습니까? –