2015년 4월 14일 화요일

Cafe24 Node.js 호스팅 유의점

1. 서버 실행 파일명 web.js

2. MYSQL Server IP, 계정 수정

3. package.json 생성 
: Android manifest 역활

4. 서비스 가능한 포트는 할당된 포트(8001port) 하나이며 
실제 앱을 싱행시키면, 연결된 도메인의 해당 포트로 접속하는게 
아니라, 공지하진 않았지만 중간에 프록시 서버가 있어서,
80번 포트로 접속 해야 한다. 


5.  var fs = require('fs');
fs 객체를 이용해서 파일을 읽어올때, 같은 위치에 존재하는 파일을 읽어오더라도. 
절대 path로 입력해야 한다. 

//middleware router
webSvr.use(connect.router(function(app) {

app.get('/',function(request,response) {
fs.readFile('/home/hosting_users/apppie/apps/apppie_tracker/tracker.htm',function(error,data) {
response.writeHead(200,{
'Content-Type':'text/html'
});
response.end(data);
});

});

........

});

6. 앱이 중간에 중지되는 Bug

이유 : Connection lost: The server closed the connection > MySQL DB Connection 끊어짐으로 발생(아무일도 하지 않으니 끊어버림)
* 구글 관련 이슈 - 문서 : 


* 해결책 : 

Keepalive

If you want to send a keepalive request, simply setup a select 1 on an interval timer.
select 1 is just a simple query that will cause MySQL to return a result of 1 and reset the MySQL server's connection timeout. It would look something like this.
function keepalive() {
  connection.query('select 1', [], function(err, result) {
    if(err) return console.log(err);
    // Successul keepalive
  });
}
setInterval('keepalive()', 1000*60*5);

Pooling

However, you're better off using the mysql module's pool functionality. It will connect to the MySQL server on an as-needed basis and will handle disconnects for you automatically.

댓글 없음:

댓글 쓰기