김보안의 블로깅
  • 🏠 Home
  • 📚 Project
    • Blockchain
      • 🎦 PickMe
      • 🎦 IoTC
      • 🎦 Blackchain
      • 📃 Gemology
      • 🎦 PickMe
      • 🎦 PickMe
    • AI
      • 👋 A.I. Dream Reader
      • 🎦 A.I. Dream Reader
    • Security
      • 🎦 SNAC
    • Education
      • 🎦 Smart Lecture
  • 🤸‍♂ Hobby
    • Music
      • Violin
      • Guitar
      • Piano
      • Drum
    • Flower
      • Flower Certificate
    • Sport
      • Ski
      • Skateboard
      • Golf
      • Boxing

2013년 7월 12일 금요일

[Nginx] apache를 nginx로 window를 CentOS 로 !

 SecureKim     오후 6:14     검은화면, 센토스, 센트 오에스, 아파치, 엔진엑스, 윈도우, 커서 깜빡임, apache, Centos, nginx, window     2 comments   




최근에 Window 7, Apache ,Node , Mysql , Redis 로 구성된 서버에

Stress Test를 하게되었습니다.

첫 페이지에서 PHP로 MySQL 로 로그인 하고,

여러 과정을 지나 Node에서 서비스를 해주는 것이었습니다.

사람들 60여명 정도에게 테스트를 했는데

정말 생각지도 못하게 로그인 페이지 부터 막혔습니다.

Win7 + Apache가 그 정도일 줄이야...


그날 바로 서버를 완전히 백업하고

Centos 를 설치한 후

Apahce를 Nginx 로 바꾸고 다른 것들도 올려 보았습니다.

그 사이에 있었던 (지금 생각해보면 어처구니 없는, 하나당 몇시간동안 고생했던)

잊지 말아야 할 것들을 적어 봅니다.

####################################################
# USB로 Centos 설치할 때는 부트로더가 USB에 설치되지 않도록 주의한다.
(이 상황에서 재부팅시 부트로더 뻥난것처럼 검은화면에 커서만 깜빡거립니다.)
이 경우, 재설치 하지말고 설치한 USB로 다시 부트로더를 잡아주면 됩니다.

# PHP Session을 이용하려면 최신버젼을 설치해야 한다.

# Nginx 에서 해야할 설정들
PHP , 특히 Websocket을 이용하기 위한 설정들

# 방화벽 설정을 잘 해준다. 열어야 할 포트를 열어준다.

# Mysql 백업했던거 복원할 때 < ,  > 절대 헷갈리지 말것.

# 현재 디렉토리부터 하위디렉토리 까지 문자열 /SL/ 을 /sl/로 바꾸어야 할 때
# 단, 신중하게 사용하여야 합니다. 반드시 바꿀 폴더에 들어가서 작업 하세요.
# 잘못사용했다가 서버가 날아갔습니다.
find ./ -type f -exec sed -i 's#/SL/#/sl/#' {} \;


#삼바 폴더 권한 설정을 해도 권한 문제로 안될 때
vi /etc/selinux/config
Set
//SELINUX=enforcing
SELINUX=disabled

#whereis , ps -e | grep "찾을 프로세스" 로 잘 설치되었고 실행되는지 확인한다.

# 더 있었던것 같은데 기억이 안나는 관계로...
####################################################



CentOS 와 Nginx 로 바꾼 다음 , 신세계가 펼쳐졌습니다. 정말 확실히 느껴지는 속도차이!


여담으로..CentOS에 대해서

"누가 센트 오에스라고 읽냐 센토스라고 읽어야지" 라는 분도 계시고

Cent + OS(Operating System) 이기 때문에

센트 오에스 라고 읽어야 된다고 하는 분도 계십니다.

뭐가 맞는 건지는 잘 모르겠지만 전 그냥 센트오에스 라고 읽으렵니다 ㅋㅋ


Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg

2013년 7월 4일 목요일

[Node.js] 객체 정렬, 방 찾기, Usage

 SecureKim     오후 4:49     객체 정렬, 로드밸런싱, 소켓으로 방 찾기, 툴, CPU, loadbalancing, memory, Node.js, sorting     No comments   

Tools.


var Tools={

//소켓 전체를 받아서 방을 돌려준다.
  getRoomBySocket:function(obj){
   var sockId=io.sockets.manager.roomClients[obj.id];
   var r= null;
   for(var k in sockId){
    if(!sockId.hasOwnProperty(k))
     continue
    r=k;
   }
   if(r!=null && typeof r !="undefined") r=r.split("/")[1];
   else r=null;
   console.log("[ function ] getRoomBySocket : ",r);
   return r;
  },

//객체를 소팅한다.
  sorting: function(f, r, p){
   var key = function (x) {return p ? p(x[f]) : x[f]};
      return function (a,b) {
          var A = key(a), B = key(b);
          return ((A < B) ? -1 : (A > B) ? +1 : 0) * [-1,1][+!!r];
      }
  },

//CPU , MEMORY 정보를 알려준다.
updateServerState:function(callback){
   var freemem=os.freemem();
   var totalmem=os.totalmem();
   var memUse=Math.round((totalmem-freemem)/totalmem*100);
   var r=null;
   os_util.cpuUsage(function(v){
    cpuUse=Math.round(v*100);
       r={cpu : cpuUse , mem : memUse};
       callback(r);
   });
  }
};


/*
 *사용법 
 * 소켓 가지고 그 소켓이 join된 방을 찾고 싶을 때. */ 
 Tools.getRoomBySocket(socket);  

/*
* 객체 소팅 */
  var book=[ { "price" : "500",
               "name"  : "andromeda" },
             { "price" : "1500",
               "name"  : "thebook" }];
// '가격' 높은거에서 낮은거로 소팅
book.sort(Tools.sorting('price', true, parseInt)); 
// '책 제목'의 a-z까지 순서로 소팅
book.sort(Tools.sorting('name', false, function(a){
return a.toUpperCase()
})); 

/*
* Server의 CPU, MEM 사용량 조사를 동기적으로 받아서 처리하고 싶을 때.
*/
 Tools.updateServerState(function(r){
 console.log("cpu : ",r.cpu," mem : ",r.mem);
 })

다음에 Node.js 프로젝트를 할때 유용하게 쓰일 것 같아서 포스팅합니다. 마음껏 쓰셔도 좋습니다. 혹시 코드에 문제가 있으면 저한테도 알려주세요 ^^
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg

[Node.js] Redis 의 데이터 관리(쿼리,삽입,삭제)

 SecureKim     오후 3:30     자동 json, hdel, hget, hset, json, Node.js 와 Redis, Redis     2 comments   

Redis 의 hset , hget , hdel

var redis = require('redis');
/*
*자동으로 JSON String화 되어 들어가고 나오게 할 방법이 있습니다.
*npm install redis-jsonify 로 다운받으시면 됩니다.
*
*사용법
*var jsonify=require('redis-jsonify');
*var client=jsonify(redis.createClient(포트,호스트,null));
*
*/
var client=redis.createClient(포트,호스트,null);
var tempobj={test: "hi", test2:"ho"}
client.hset('test','a',JSON.stringify(tempobj) ); 
client.hget('test','a',function(err,obj){
 obj=JSON.parse(obj);
 console.log(obj.test);
});
client.hdel("test","a"); 
//test 키 전체가 삭제되는 것이 아니라 test 의 a와 내용만 삭제합니다.

github.com/mranney/node_redis 이곳에서 함수를 찾아보곤 했었는데 이곳에 없는 것들이 많더라구요. hget, hdel이 있다는 사실은 나중에 실험을 통해 알게 되었습니다.
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
최근 게시물 이전 게시물 홈

페이지

  • 홈
  • Hobby

Categories

  • AI
  • android
  • AWS
  • Blockchain
  • Hardware
  • Javascript
  • mysql
  • Node.js
  • Plasma
  • review
  • Security
  • Study
  • Video
  • windows

Popular Posts

  • 블랙보드 강의 녹화 영상 다운로드 가능한 방법 (노설치)
    별도의 설치도 필요 없고 아주 쉽습니다. 구글 크롬브라우저 에서 블랙보드 녹화 영상에  다운로드 가능한 메뉴가 나오게 하는 코드입니다.  먼저 블랙보드 강의자료에 입장하고, 재생 버튼을 클릭 하지 않은 상태로 F12 를 입력합니다. 재생을 클릭하지 마세요.
  • [Node.js] Redis 의 hmset
    Redis 의 hmset 사용하기 var redis = require('redis'); var client=redis.createClient(포트,호스트,null); /* * MySQL을 사용하다가 Redis를 사용해보니 신세...
  • 안드로이드 음성 소켓 통신 (2월 단기)
    안드로이드-음성을 패킷화 하여 P2P 소켓 통신. 처음엔 TCP로 구현했었는데 서버 과부하를 줄일 수 있도록 P2P로 구현하겠노라 큰소리 쳤습니다. P2P는 홀펀칭이 필요하며 따라서 TCP로는 어렵다는 것을 알게 되었죠. 각 단말...

Blog Archive

  • ►  2023 (1)
    • ►  1월 (1)
  • ►  2022 (10)
    • ►  12월 (1)
    • ►  11월 (3)
    • ►  9월 (1)
    • ►  8월 (1)
    • ►  6월 (2)
    • ►  3월 (2)
  • ►  2021 (9)
    • ►  12월 (3)
    • ►  11월 (1)
    • ►  6월 (1)
    • ►  5월 (2)
    • ►  4월 (2)
  • ►  2020 (12)
    • ►  10월 (1)
    • ►  9월 (2)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (5)
    • ►  4월 (1)
    • ►  2월 (1)
  • ►  2019 (14)
    • ►  10월 (2)
    • ►  7월 (1)
    • ►  3월 (4)
    • ►  2월 (2)
    • ►  1월 (5)
  • ►  2018 (14)
    • ►  12월 (2)
    • ►  11월 (4)
    • ►  10월 (1)
    • ►  8월 (2)
    • ►  5월 (4)
    • ►  1월 (1)
  • ►  2017 (12)
    • ►  10월 (2)
    • ►  9월 (9)
    • ►  5월 (1)
  • ►  2016 (8)
    • ►  10월 (2)
    • ►  8월 (1)
    • ►  6월 (1)
    • ►  1월 (4)
  • ►  2015 (6)
    • ►  12월 (3)
    • ►  10월 (1)
    • ►  6월 (1)
    • ►  5월 (1)
  • ►  2014 (10)
    • ►  11월 (1)
    • ►  9월 (1)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (3)
    • ►  4월 (1)
    • ►  3월 (2)
  • ▼  2013 (28)
    • ►  12월 (3)
    • ►  11월 (6)
    • ►  10월 (6)
    • ►  9월 (6)
    • ►  8월 (1)
    • ▼  7월 (3)
      • [Nginx] apache를 nginx로 window를 CentOS 로 !
      • [Node.js] 객체 정렬, 방 찾기, Usage
      • [Node.js] Redis 의 데이터 관리(쿼리,삽입,삭제)
    • ►  6월 (3)

구독

글
Atom
글
전체 댓글
Atom
전체 댓글

로드 중입니다...

각오

직접 해보지 않은 것은 포스팅 하지 않겠습니다.

Copyright © 김보안의 블로깅 | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates