제2의 비엔지니어 인생관을 꿈꾸며

Posted
Filed under Study
비스타의 대대장급인 2008 서버한테는 미안한 방식이지만 그래도 응용어플리케이션의 공용화를 위한 하나의 편법을 필자가 사용해봤다. 뭐 MS에서 라이센스 위반이다라고 말하면 할말없다. 어짜피 MS에서는 단일세션으로만 만들어줬기 때문에 사용자가 튜닝해서 쓰든 말든 상관만 안해주면 고맙기도 하겠지...
사용자 삽입 이미지
사용자 4개를 생성해서 전부다 붙여보았다. 유저권한 2명 관리자 권한 2명이다. 그이상도 세션을 활성화 시킬수 있지만 멀티세션 사용가능하다는것만을 테스트해본것이기 때문에 더이상 만드는것도 귀찮다. 요즘 컴퓨터 사양들이 정말 좋아졌다. 멀티코어시대라서 4코어 뭐지않아 개인데탑용도 8코어시대가 금년안에 올지도 모른다는 생각도 해본다. x64 버젼이라 메모리를 극대화 시킬수 있어서 깡통 컴퓨터로 메인집중화 시킬수있는 좋은 솔루션이라고 말하고싶다. 머쉰을 분산화 시키다보면 데이타도 분산화되고 그리고 관리면이나 효율적인 보안면에서 문제가 많이 발생할일이 많다. 그래서 클라이언트 운영체제를 이용한 터미널 서버운영은 영세한 오피스업무자들에겐 좋은 방법중의 하나이다.
2008/01/22 20:12 2008/01/22 20:12
Posted
Filed under Study

원래 내가 사용하는 스킨은 현재 사용율 1위인 iendev이 만드신 IS BASE ver.0.33이다.
최초에 이를 선택하여 애드센스 광코 코드를 넣고보니 사이드바를 하나 더 추가하고 싶은 마음이 생겼다. 손쉽게 3단 스킨을 선택하여 사용할 수도 있었지만 다시 애드센스 코드를 일일이 삽입해주는 것이 여간 귀찮은 것이 아니었다. 그래서 새로운 사이드바를 추가할 수 있는 방법을 알아보았다. (필자의 말이 아님 원본출처 필자의 말)


먼저 사이드바를 추가하는 과정의 큰 틀을 살펴보겠다.

ⓐ style.css을 편집을 가해야 한다.

ⓑ style.css에서 우선 "새로운 사이드바"을 선언한다.(기존의 사이드바를 참고한다)

ⓒ style.css에서 새로운 사이드바를 구현하기 위한 필요한 요소들을 설정한다.(기존의 사이드바를 참고한다)

ⓓ skin.html에서 추가된 사이드바에 모듈이나, 다른 내용을 추가한다.(기존의 모듈을 참고한다.)

큰틀의 흐름은 여기까지이다. 이제 상세하게 알아보도록 한다.


1. style.css부분을 살펴보아 다음과 같은 부분을 찾아, 빨간색과 같이 새로운 사이드바를 선언한다.

#tool      {
   width:100%;
   min-height:10px;
   clear:both;

      }
 #container {     블로그 전체를 선언한 곳
   width:910px;  전체폭을 선언한 곳.  이곳은 추가사이드바의 가로폭을 더해줘야 한다.
   border:0px ;
   margin:0px auto;
   padding:0px;   
 }
 #header {  
   margin-bottom:10px;
   min-height:10px;
   clear:both;
   overflow:hidden;  
 }
 #content {
   float:left;
   width:540px;              우리가 글을 쓰는 본문 폭.
   overflow:hidden;  
 }
 #sidebar {
   display:block;
   float:left;
   width:190px;
   margin-left:10px;
   overflow:hidden;
 }
 #newsidebar {           새로운 사이드바 이름을 newsidebar라고 하였다.
   display:block; 
   float:left;
   width:160px;             가로폭은 160px으로 하였다.
   margin-left:0px;
   overflow:hidden; 
}

블로그 전체폭이 좁을경우 추가 사이드바가 기존의 사이드바의 밑에 보여지는 경우가 있다. 이때는 블로그 전체 폭을 10px정도 더 늘려가며 제대로된 폭을 찾아보자.



2. 추가 사이드바를 설정하는데 필요한 요소를 찾기위해 기존의 사이드바가 어떤식으로 되어 있는지 살펴보자

/* ***** sidebar ***** */

#sidebar                       { }        <!--이부분이 기존의 사이드바 설정 시작부분 -->
#sidebar .side_item         { padding:10px 10px 10px 10px;  padding-left:8px; border-left:1px solid #999999; border-right:1px solid #999999; background-color:#f9f9f9; }

#sidebar a:link          { color:#333;  text-decoration:none;}
#sidebar a:visited       { color:#333;  text-decoration:none;}
#sidebar a:hover         { color:#C45050;  text-decoration:none;}
#sidebar a:active        { color:#333;  text-decoration:none;}
        
#sidebar ul                    { list-style:none;}
#sidebar li                    { padding-left:0px;}
#sidebar h3                    { cursor:pointer; font-family:tahoma,dotum; font-size:11px;  font-weight:bold; color:#C45050; background:url(images/line_dot_gray.gif) 0px 22px repeat-x; margin-bottom:10px;}
#sidebar .item_title            { font-family:tahoma,dotum; font-size:11px;  font-weight:bold; color:#C45050; margin-bottom:35px;}
#sidebar .cnt                  { font:0.85em Tahoma, Helvetica, Arial, Gulim, sans-serif;  color:#f60;}
#sidebar .date                 { font:10px Tahoma;  color:#888;}
#sidebar .name                 { font:0.9em Dotum, Arial, sans-serif;  color:#888;}

각종 모듈에 대한 설정들이 들어서 있다.

#sidebar .btn             { margin-top:10px;} <!--이부분이 기존의 사이드바 끝 -->



3. 이제 "기존의 사이드바"의 코드를 다음과 같이 sidebar를 newsidebar로 바꾸어 기입한다. 이를 다신 "기존의 사이드바 아래"에 추가한다.

#newsidebar                       { }                          <!-- 추가 사이드바 시작 -->
#newsidebar .side_item         { padding:10px 10px 10px 10px;  padding-left:8px; border-left:1px solid #999999; border-right:1px solid #999999; background-color:#f9f9f9; }

#newsidebar a:link          { color:#333;  text-decoration:none;}
#newsidebar a:visited       { color:#333;  text-decoration:none;}
#newsidebar a:hover         { color:#C45050;  text-decoration:none;}
#newsidebar a:active        { color:#333;  text-decoration:none;}
        
#newsidebar ul                    { list-style:none;}
#newsidebar li                    { padding-left:0px;}
#newsidebar h3                    { cursor:pointer; font-family:tahoma,dotum; font-size:11px;  font-weight:bold; color:#C45050; background:url(images/line_dot_gray.gif) 0px 22px repeat-x; margin-bottom:10px;}
#newsidebar .item_title            { font-family:tahoma,dotum; font-size:11px;  font-weight:bold; color:#C45050; margin-bottom:35px;}
#newsidebar .cnt                  { font:0.85em Tahoma, Helvetica, Arial, Gulim, sans-serif;  color:#f60;}
#newsidebar .date                 { font:10px Tahoma;  color:#888;}
#newsidebar .name                 { font:0.9em Dotum, Arial, sans-serif;  color:#888;}


기존의 사이드바를 참고해보면 이부분에 달력, 카테고리, 카운터 등이 복잡하게 기입되어 있는 것을 볼 수 있다. 나는 이곳에 모듈은 넣지 않고 광고만 넣을 것이므로 아무것도 넣지 않았다.
 

 
#newsidebar .btn               { margin-top:10px;}      <!--추가 사이드바 끝 -->




3. 이제 skin.html에서 "추가 사이드바"의 내용을 정해야 한다. skin.html에서 사이드바의 내용이 어떤식으로 설정되어 있는지 살펴보자


 <div id="sidebar">
   <b class="ntop"><b class="r1"></b><b class="r2"></b><b class="r3"></b><b class="r4"></b></b>
   
   <div class="side_item" id="side_item">
   <s_sidebar>

    <s_sidebar_element>
     <div class="아무이름이나넣으세요">

                   이부분에 모듈이나 다른 내용이 들어 간다.

      </div>
    </s_sidebar_element>
   </s_sidebar><div class="sbox_hblank1"></div>
   </div>
   
   <b class="nbottom"><b class="r4"></b><b class="r3"></b><b class="r2"></b><b class="r1"></b></b>  
   <br /><br />
 </div>
 <!-- sidebar close -->



4. 기존의 사이드바의 내용을 설정한 것을 참고하여 다음과 같이 sidebar를 newsidebar로 바뀌어 기존의 사이드바 끝부분 다음에 추가하여 준다.

     <!-- 추가 사이드바 -->
  <div id="newsidebar">
    <b class="ntop"><b class="r1"></b><b class="r2"></b><b class="r3"></b><b class="r4"></b></b>
   
    <div class="side_item" id="side_item">
    <s_newsidebar>

     <s_newsidebar_element>

      <div class="아무이름이나 넣으세요">

이부분에 원하는 광고코드를 넣어주면 된다. 나는 160px*~~인 세로로 긴 모양의 광고를 넣었다.
 
      </div>
     
     </s_newsidebar_element>


    </s_newsidebar><div class="sbox_hblank1"></div>
    </div>
   
    <b class="nbottom"><b class="r4"></b><b class="r3"></b><b class="r2"></b><b class="r1"></b></b>  
    <br /><br />
       </div><!-- 추가 사이드바 끝-->



5, 이와같이 다소 복잡한 과정을 거친 뒤 현재 나의 블로그와 같이 새로운 사이드바를 추가하여 그곳에 가로 160px짜리 세로로 긴 모양의 이미지 광고를 넣을 수 있었다.











네이버 PHP PLAY  에서 복사해 왔음 사이드바에 배너추가하는걸 검색해도 나오지 않길레 이리저리 뒤지다가 겨우 찾았음.
2008/01/19 10:17 2008/01/19 10:17
Posted
Filed under Study
2008년도는 분명 운영체제나 프로그램간에 가상화 이슈가 불붙을거라 장담한다. 이유라면야 하드웨어 발달이 가속화 됨에따라 고가자원의 여유가 있어 그에대한 자원활용도를 구상해볼때 가상화는 또하나의 서버나 클라이언트간 좋은 솔루션이다.
불필요한 물리적 자원을 해소시킴과 동시에 엔지니어와 개발자 그리고 오피서들의 멀티플레이어가 요구되고 있는 이 시점에 논리적인 운영체제 추가는 반드시 필요하게 되었다.
요즘 가상화에대한 이슈가 대단하다. MS는 가상화 기술을 추가함으로써 대대적인 홍보를 벌이고 있으며 가상화기술의 선두주자를 지키고 있는 VMware는 서버버젼 업그레이드와 동시에 내년 4월에 정식버젼 출시를 앞두고 있다. 2008서버는 3월에 VMware는 4월에... 한달차이를 보이고 있지만 분명 이 둘간의 보이지않는 경쟁은 짐작이 갈정도이다.
필자는 2008서버를 쓰기 앞서 MS의 버츄어서버 버젼을 써보았는데 결과는 최악의 성능에 두손두발 다들어어 하드웨어 탓만 하고 있었다. AMD-V 나 인텔 VT V-pro 기술이 없어서 느려진거다라고 단정 지었었다. 하지만 그게 아니었던거다. VMware의 웍스버젼과 서버버젼을 골고루 써본결과 놀라울정도로 만족함과 동시에 VM솔루션 구상에 빠져들기 시작한것이다. 필자는 반드시 가상화 기술이 필요했다. 이유는 리눅스 운영체제 관리때문이다. 윈도우서버라면 복구든 설치든 여러가지로 용이하지만 리눅스를 웹서버정도만 운영할줄알고 나머지는 명령어조차 모르기때문에 관리때문에 많은 애로사항이 있었다. 그리고 레이드 컨트롤러도 리눅스를 지원하는 카드들은 비용이 많이 비싸기 때문에 생각하기도 싫은 과제물이 되어버린셈이다.

VMware1.0x 버젼에 SU리눅스를 설치하고 운영해본결과 대만족하고 있었는데 예상치 못한 결과를 초래했었다. 일부 리눅스 특히 CentOS 계열과 SUSE 계열은 시간이 안맞고 느려지는 현상에 답답해 왔었다. 엄청난 버그였다. VMware측에서는 리눅스 커널을 수정하라고 하는데 나같은 초짜의 초짜도 안되는 사람한테 수정하라고 하면 차라리 쓰지말라고 하는말과 같은것이다. 그래서~~ 베타버젼이여도 2.0 베타를 설치하고 돌려봤다. 성능은 항상 만족했었기 때문에 말이 필요없다.

사용자 삽입 이미지

사용자 삽입 이미지
서버운영체제 관리이기 때문에 구지 콘솔콘트롤은 필요하지 않게 되어 있으며 설치 복구시에만 보는것 이외에는 전혀 콘솔관리는 없을듯 하다. SSL 웹인터페이스 방식으로 모니터링을 쉽게 할수 있으니 앞으로 리눅스 관리는 아주 쉽게 되어있다고 말하고 싶다. 그리고 리눅스 서버를 운영하기 위하여 머신을 따로 만들지 않아도 되는 장점또한 있어 더더욱 좋은 기술이라는것이다. 현재 테스트서버는 듀얼코어도 아닌 펜4 3.0C 버젼에 램2기가 모델이다. 요즘은 듀얼코어와 메모리 가격이 너무나도 싸기때문에 4기가에 듀얼코어를 한다고 해도 예전 펜티엄4 가격시대하고도 너무 비용이 적게든다. 앞으로 가상화 2번째 성능 테스트와 동시에 실질 서버로 운영할 테스트 사양은 쿼드코어에 메모리4기가나 8기가 그리고 인텔 D35DP 모델 보드에 메트릭스 레이드5로 구성할 예정이다. 메트릭스 레이드는 윈도우에서만 지원이 가능하기 때문에 윈도우 서버방식으로 리눅스 운영할 유저들에게는 안성맞춤인 사양인것이다. 그리고 매트릭스 레이드5 성능 대충 측정해본결과 200MB/s 에서 150MB/s 에서 처리를 하고 있었다. 왠만한 레이드카드 스트라이프로 묶은것보다도 성능이 월등하다. 하드웨어 모니터링과 관리는 윈도우로 그리고 소프트웨어적인 서러관리는 VM을 통한 리눅스로 하는 시대가 2008년의 한 솔루션 경쟁이 예상되어진다.
2007/12/29 21:32 2007/12/29 21:32
Posted
Filed under Study
 

VSFTP (Very Secure FTP Daemon)

VSFTP 는 보안 부분을 특히 강조한 데몬으로 Redhat에서 기본 FTP 로 채택하고 있다.
<특징>

- 보안, 빠른 퍼모먼스, 안정성

- 간단한 config 파일(/etc/vsftpd.conf)의 설정 문법

1) vsftp를 설치 후 자신에게 맞도록 vsftpd.conf 파일을 수정하자.

# vi /etc/vsftpd.conf

 

========================= vsftpd.conf 내용==============================

 

# 익명사용자를 접속시킬것이냐?

anonymous_enable=NO


# local유저 즉 이서버에 있는 계정들을 접속가능하게 할것이냐?
local_enable=YES

# 쓰기권한부여할거냐?
write_enable=YES


# 쉽게말해서 로컬접속자 접속권한을 걸어주는건데 (022 -> 755라는 퍼미션으로 접속)
local_umask=022

 

# 익명사용자가 업로드 할수있게 할거냐?
# anon_upload_enable=YES

# 익명사용자가 디렉토리를 만들게 할거냐?
# 익명사용자를 허용 안할 경우 모두 주석 처리

#anon_mkdir_write_enable=YES


#원격에서 접속하면 환영문자 사용할거냐?
dirmessage_enable=YES


#업,다운로드 로그 남길거냐?
xferlog_enable=YES

# 업,다운로드 로그 파일지정
xferlog_file=/var/log/vsftpd.log

 

# ascii 모드 파일을 취급(업,다운로드)할거냐?
#ascii_upload_enable=YES
#ascii_download_enable=YES

 

# ftp서버접속시 보여줄 메세지

ftpd_banner=Welcome to JONGWON KWON VSFTP service. Have a good time!!

 

# 접속시 사용자 홈디렉토리를 /로 변경할 사용자 목록 허용.

# chroot 제한(적용)이 필요할 경우 YES 로 변경 후

# 제한을 적용할 사용자 ID 를 chroot_list_file= 에 설정한 파일에 지정

# (주의) chroot_local_user=YES 와 chroot_list_enable=YES 를 함께 사용할 경우 :
# /etc/vsftpd.chroot_list에 포함된 사용자 ID 만 제한없이 홈디렉토리를 벗어날 수 있음

# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list

####### 여기서부터는 기본 설정에는 없고 필요시 추가해서 쓰는 설정 #######

# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd

# wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능)
session_support=YES

 

# 접속시 로컬 사용자의 홈디렉토리를 /로 변경 및 사용자의 홈디렉토리를

# 벗어나지 못하도록 제한하기 위한 설정

chroot_local_user=YES


# 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명
# message_file=.message

# xferlog 형식으로 log를 남기려면 (위에서 이미 YES로 했음)
# xferlog_std_format=NO

# 전송속도 제한 (0은 제한없음, 단위는 초당 bytes)
anon_max_rate=0
local_max_rate=0
trans_chunk_size=0


# 최대 접속 설정 (단 xinetd를 통하지 않고 standalone으로 동작할 때만 사용 가능)
# standalone을 위해서는 listen=YES 추가하고 별도로 vsftpd를 띄워야 함

# max_clients=최대 접속자 수, max_per_ip=IP당 접속 수
# max_clients=100
# max_per_ip=3


# Standalone 으로 운영할 때 listen=YES. 포트 변경을 원할 경우 listen_port 설정
# 디폴트 포트는 21번 포트이다.
# listen=YES
# listen_port=21

2007/12/28 13:07 2007/12/28 13:07