2015-01-10 2 views
0

노드 응용 프로그램에 대한 일부 업데이트를 OpenShift에 배포 했으므로 이제는 index.html 파일을 보내지 않을 것입니다.노드 JS는 Openshift에서 색인 파일을 제공하지 않습니다. 로컬에서 작동

/Site/ 
....server.js 
....app/ 
........index.html/ 

내 서버는 다음과 같습니다 : 나는 다음과 같이

내 디렉토리 구조는 ... 너무 Express를 업데이트하고 거기에서 모든 오류를 수정

var express = require('express'); 
var app = express(); 
var path = require('path'); 

app.use(express.static('app')); 

require('./server-stripe.js')(app); 

app.get('*', function(req, res) { 
    res.sendFile(path.resolve(__dirname + 'app/index.html')); 
}); 

var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080 
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || process.env.OPENSHIFT_INTERNAL_IP ||'127.0.0.1' 

app.listen(server_port, server_ip_address, function() { 
    console.log("Listening on " + server_ip_address + ", server_port " + server_port) 
}); 

이에 잘 작동 내 로컬 환경이지만 Production에서는 503 Service Unavailable을 얻습니다.

모든 조언을 크게 높이세요! Whits 끝 모두)

감사합니다, 매트

편집 이 로그입니다 :

==> app-root/logs/haproxy.log <== 
[WARNING] 009/181452 (443835) : Server express/local-gear is UP (leaving maintenance). 
[WARNING] 009/181453 (443835) : Server express/local-gear is DOWN, reason: Layer7 wrong status, code: 404, info: "Not Found", check duration: 36ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue. 
[ALERT] 009/181453 (443835) : proxy 'express' has no server available! 

==> app-root/logs/nodejs.log <== 
Error: ENOENT, stat '/var/lib/openshift/539976e05004467473000668/app-root/runtime/repo/app/index.html' 

내가 너무 흘려 주기도 모르겠지만 나는 hapoxy 물건 주위를 읽고 있어요 그것으로?

+0

당신이 로그를 살펴 보셨나요? –

답변

0

Haproxy는 루트 경로 (http://domain.name)에서 http 200 OK 응답 코드로 서비스를 제공해야합니다. 그렇지 않으면 장비가 다운되었음을 알려줍니다. 앱의 자체 장비에서 말린 상태로 앱을 확인해 볼 수 있습니다. IP 및 포트의 배포 로그를 참조하십시오.

유형 인식에 대한 걱정없이 ("/ 응용 프로그램"여기) 선택한 폴더의 정적 파일을 제공하기 위해, 당신은 사용할 수 있습니다

app.use(express.static(__dirname + '/app')); 

기본 MIME 타입이 충분하지 않은 경우, 당신이 그들을 확장 할 수 있습니다 :

express.mime.type['ogv'] = 'video/ogg'; 

그렇지 않으면, 정적 파일 서버의 '매뉴얼'을 구현 Basic static file server in NodeJS를 참조하십시오.

은 다음을 참조하십시오 http://expressjs.com/api.html

+0

노드 서버에서 처리 할 수 ​​있습니까? 내 index.html을 루트 디렉토리로 옮기면 파일을 서비스하지만 css/js에 올바른 mime 유형이 없습니다. – user2740151

+0

편집 된 답변보기 – ptrk

관련 문제