크리에이티브 커먼즈 라이선스
Creative Commons License

윈도우나 리눅스 설치시 보통 DVD나 CD ROM을 사용해서 설치를 합니다. 데스크탑이라면 보통은 설치를 해서 많이들

 

사용하실 텐데요. 노트북의 경우도 좀 덩치가 있는 것들은 DVD-RW를 내장하고 있는경우가 많지만 무게,크기 경량화를 위해

 

넷북이나 울트라씬 노트북의 경우 ODD를 제공하지 않는 경우가 대부분 입니다. 그래서 외장 ODD를 구입해서 사용하거나

 

고용량 USB에 윈도우 설치 DVD내용을 복사해서 부팅하는 방법을 선택해서 설치하는 경우가 많은데요. 이 과정들이 OS종류

 

마다 다를뿐더러 GRUB등을 MBR(Master Boot Record)에 심는 작업을 해야되는 번거로움을 거쳐야 될때가 많아서 저도

 

이제까지 ODD가 없으면 많이 시도해본적이 없습니다. 그러던 중에 구형넷북에 윈도우8을 설치하면 속도가 빠르다는 소식을

 

듣고 집에서 굴러다니는 넷북에 설치를 하려는데 제가 가지고 있는 메모리스틱은 4GB밖에 안되고 그나마도 다른 자료들이

 

들어있어서 사용할 수가 없고 SATA & IDE to USB 젠더가 있어서 ODD를 떼서 연결해서 설치할순 있지만 귀찮았습니다.

 

 

 

Serva구축 구성도

 

그래서 네트워크 설치를 시도해보게 됐는데 결론부터 말하자면 정말 편합니다. 요즘 PC들에는 대부분 네트워크 부팅 기능이

 

있기때문에 BIOS나 EFI에서 네트워크 부트만 설정하면 활용이 가능합니다. 이런행위를 가능하게 하려면 두가지 준비물이

 

필요합니다.

 

준비물 : 1. 윈도우 설치 DVD or ISO(ISO를 사용한다면 가상ODD 구축 프로그램 사용필수)

2. 윈도우 설치 DVD나 ISO를 공유할 서버용 PC

3. TFTPD를 사용하는 툴(Netboot), Serva

 

보통 인터넷에서 네트워크를 통한 윈도우 설치 방법을 보면 준비물 3에 해당하는 것중에 NetBoot를 통한 설치방법이 많이

 

발견됩니다만 이 툴은 윈도우XP를 설치할때는 간편하지만 상위버전 설치시에는 설정해줘야 할것도 많고 제대로 안될때가

 

많아서 추천하고 싶지 않습니다. 저 또한 많이 시행착오를 겪었구요. 찾던중 Serva라는 다용도 서버구축 툴이 있더군요.

 

HTTP,FTP기타등등의 서버를 간편하게 구축할수 있게 해주는 툴이었습니다. 여기서 목적은 윈도우 설치이므로 툴에 대한

 

자세한 설명은 생략하고 사용방법을 써보겠습니다. 우선 아래의 파일을 다운로드 하세요.

 

Serva_Non-Supporter_32_v2.1.4.zip

Serva_Non-Supporter_64_v2.1.4.zip

 

작업을 시작하기전 본 내용은 무선랜으로는 작업할 수 없고 유선랜으로만 가능하다는것을 알립니다. 그리고 내용은 공유기를

 

사용한 환경에서의 설정만을 다룹니다. 유동IP를 사용하는 경우도 설정 가능하지만 이 부분은 제외하겠습니다.

 

우선 위의 파일중 32나 64로 되있는것을 받습니다. 저의경우 64로 되있는 버전을 사용했는데 서버로 사용되는 PC의 OS가

 

64bit 일경우 사용하시면 됩니다.

 

1. 압축해제

  압축을 해제합니다. ex) D:\Serva , 그리고 따로 폴더를 하나 생성합니다. ex) D:\ServaRoot 이 D:\ServaRoot는 네트워크

  에서 공유될 윈도우 설치 파일들이 위치할 곳으로 매우 중요합니다. 핵심은 Serva 파일이 위치할 폴더와 윈도우 설치파일들이

  위치할 폴더를 따로 생성하는 것입니다.

 

 

 

2. Serva 환경설정

  Serva는 Donation 라이센스 프로그램입니다. 위 버전들은 Non Supporter 버전으로 기능제한이 있습니다만 아무 무리 없이

  활용가능합니다.

 

 

처음 실행하면 위와 같은 화면이 뜹니다. Settings를 눌러줍니다.

 

 

 

 

위와같이 TFTP 탭의 내용을 설정해 주는데 두번째 섹션의 'Bind TFTP to this address' 부분이 중요합니다. 보통 공유기를

 

사용한다면 192.168.0.1(공유기 IP)를 GateWay로 잡고 나머지 PC들이 공유하게 되는데 (ex)192.168.0.2 이 IP를 설정해 주는

 

것으로 시작 → 실행 → CMD 에서 IPCONFIG 명령을 통해 볼 수 있습니다. 여기서는 현재 Serva를 실행한 PC의 내부IP가

 

192.168.0.2 를 사용하는것으로 가정 하겠습니다. 매우 중요한 부분이므로 잘 따라하시면 됩니다.

 

이제 TFTP Server root Directory를 설정합니다. 앞서 Serva를 설치할때 만들었던 폴더 예와 같이 설정해 주시면 됩니다.

 

후에 이 폴더에 있는 윈도우 설치 파일을 공유하여 설치가 진행됩니다. 여기서는 D:\ServaRoot로 지정하겠습니다.

 

 

 

 

이제 DHCP서버를 설정해야 합니다. DHCP Server에 체크 하시고 Service Add-On에 체크하시고 위에서 TFTP탭을 설정했듯이

 

Bind DHCP to this address항목을 192.168.0.2로 설정합니다. 아래에 보시면 IP Poll 1st addr 항목이 있는데 이건 설치대상이

 

되는 PC가 사용할 IP주소 입니다. 공유기에서 따로 범위설정을 해서 막아놓은게 없다면 대강 아무 IP나 잡아주면 될겁니다.

 

여기선 이 IP를 192.168.0.3이라고 하겠습니다. 그리고 Pool size는 10으로 해주시고 Subnet Mask는 255.255.255.0으로 설정

 

합니다. 다 되셨으면 아래의 '확인' 버튼을 누르시면 Serva를 다시 실행하라는 메시지가 뜹니다. 다시 실행하시면 되며 재실행

 

후에 우선 Serva 프로그램을 종료해 놓습니다.

 

 

 

 

처음에 Serva를 설치할때 우리는 D:\(혹은 C:\) 에 Serva, ServaRoot라는 폴더를 두개 만들었습니다. 이번에 설정할 내용은

 

ISO나 DVD롬에 있는 윈도우 설치파일을 복사할 차례입니다. 위와같이 ex)D:\ServaRoot\WIA_WDS 폴더를 공유폴더로

 

지정합니다.

 

윈도우 7,8을 서버PC로 사용한다면 설정방법이 약간 다를수 있겠으나 결과는 동일합니다. 그리고 가장 중요한 것은 공유이름을

 

반드시 WIA_WDS_SHARE로 지정 하시기 바랍니다. 확인을 눌러서 완료하시고 D:\ServaRoot\WIA_WDS 이 폴더 내에

 

마음대로 폴더를 하나 만듭니다. ex)Windows7  그리고 그 폴더(D:\ServaRoot\WIA_WDS\Windows7) 에 윈도우 설치

 

DVD나 ISO에 있는 파일을 전부 복사 해서 넣어줍니다. 숨김파일이 있을수 있으므로 숨겨진 파일을 모두 볼수 있게 해서

 

복사 하시기 바랍니다. 네트워크 부팅시 Serva를 통해 위의 폴더의 내용을 인식하여 Windows를 설치 할 수 있습니다.

 

윈도우 XP나 2000의 경우 WIA_RIS 폴더, 리눅스의 경우 NWA_PXE 폴더에 위와 같은 작업을 수행해서 설치를

 

진행할 수 있습니다.

 

 

 

작업이 완료되면 위와 같은 구조가 될 것 입니다. 이제 Serva를 실행하고 설치대상인 PC를 네트워크 부팅 시킵니다.

 

BIOS나 EFI 구성에 따라 다르겠지만 통상 F12를 누르면 네트워크 부팅이 선택됩니다. 그러나 이미 OS가 설치된 상태라면

 

무시하고 넘어갈 수 있으므로 네트워크 장치를 부팅순서 최우선 순위로 두고 부팅하는것이 좋습니다

 

 

이제까지 작업이 제대로 됐다면 Serva에서 위와같이 Windows 부트 파일을 자동으로 알아차리고 물어봅니다. 이를 응용해서

 

위에서 설정한 ex)D:\ServaRoot\WIA_WDS\ 폴더에 여러가지 윈도우 버전에 따른 설치파일들을 위치시키면 여러개의

 

버전을 골라서 설치 할 수 있습니다.

 

 

 

위와같이 Serva의 부트로더로 부팅을 진행하게 됩니다.

 

 

 

부팅이 진행되면서 위와같이 서버PC의 사용자 ID와 비밀번호를 묻는 경우가 생깁니다. 앞에서 ServaRoot 폴더를 우리는 공유

 

폴더로 지정을 했었고 서버로 사용되는 PC의 윈도우에서 사용자 계정 암호가 걸려있으면 인증을 해야 공유폴더에 접근할 수

 

있기 때문에 묻는 것입니다. 서버 PC의 현재 로그인한 계정(ID)와 비밀번호를 입력하시면 됩니다. 어려우신 분들은

 

서버PC의 사용자 계정 암호를 삭제하고 접근해보셔도 될 것 같습니다. 아무튼 저렇게 ID와 PW를 입력한뒤 Connect를 누르고

 

인증이 완료되면 윈도우 설치 DVD를 넣고 작업한것과 동일한 셋업 화면을 보시게 됩니다. 이때부터는 설치작업을 진행하시면

 

되며 설치완료후 첫 재부팅시에 Serva를 종료하시면 됩니다.

 

※주의 : 위 이미지의 인증과정에서 ERROR : 0x37 Network resource is no longer available 이라는 메시지가

 

발견될 수 있는데 이는 네트워크 부팅 과정 이후의 설치 과정에서 설치대상PC의 Ethernet(LAN) 드라이버를 찾을 수 없어서

 

생기는 오류 입니다. 대개는 자동으로 알아 차리며 제 경우에도 Realtek 칩셋을 사용하는 Ehternet 드라이버를 자동으로

 

인식했습니다. VMWare는 이상하게 되질않네요.

 

여기까지 Serva를 이용한 네트워크 부팅을 통한 윈도우 설치 방법에 대해서 알아봤습니다. OS를 설치하려는데 DVD를 넣고

 

빼는것이 귀찮은 분들, 테스트 용도로 OS를 이것저것 설치해봐야 할 경우가 많을때 Serva는 위와같이 몇가지 설정만 거치면

 

셋업서버 용도로 사용할 수도 있는 매우 유용한 툴입니다. 저도 이번에 처음 사용해 봤는데 상당히 유용해서 집에 몇가지

 

윈도우 버전을 올려서 셋업서버로 구축해둔 상태입니다. 필요하신 분들은 참고하시기 바랍니다.

 

 

 

 

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

요즘엔 보통 Tomcat 5~6버전 혹은 Tomcat 7 버전을 WAS로 사용하는 경우가 있을 겁니다. 제가 일하는 곳의

환경은 꽤 구형 시스템을 사용하고 있고 프로그램에서 DB 커넥션 시 JDBC로 바로 연결하고 있어 부하가 상당히 걸리는

편이라 개선을 해보고자 DBCP를 사용하여 커넥션을 얻어오도록 테스트를 해봤습니다. 요즘엔 각종 프레임워크에서

손쉽게 설정 가능 하지만 이곳 상황이 그렇지 못하기 때문에 좀 삽질을 했습니다.

먼저 DBCP를 사용하기 위해서는 자카르타 DBCP API인 Commons-dbcp-1.2.1.jar, Commons-collections-3.1.jar,

Commons-pool-1.2,jar 가 반드시 필요합니다.(꼭 버전이 맞아야 하는것은 아닙니다.)

그리고 중요한 것은 이 세개의 라이브러리가 톰캣 설치 디렉토리의 commons/lib 디렉토리에 위치해야 하며 어플리케이션이

위치하는 컨텍스트에 이 라이브러리들이 중복해서 등록됐을경우 오류를 발생 시킵니다.

1. Tomcat - Server.xml 수정

  - 톰캣이 설치된 디렉토리의 conf/server.xml을 수정합니다. 여기서 Resource의 name속성에 지정된 명칭은

  나중에 JNDI를 통해 가져올 이름으로 이후에 수정할 컨텍스트 내의 web.xml의 명칭과 동일 해야 합니다.

  혹은 전역적으로 설정하기 위해 <GlobalNamingResources> 내부에서 <Context>를 제외하고 아래 내용을 사용해도 됩니다.

<Context path="" docBase="ROOT" debug="0">
   <Resource name="jdbc/erpdb" auth="Container" type="javax.sql.DataSource"/>
   <ResourceParams name="jdbc/erpdb">
     <parameter>
          <name>username</name>
          <value>test</value>
     </parameter>
     <parameter>
          <name>password</name>
          <value>test</value>
     </parameter>
     <parameter>
          <name>driverClassName</name>
          <value>com.sybase.jdbc2.jdbc.SybDriver</value>
     </parameter>
     <parameter>
          <name>url</name>
          <value>jdbc:sybase:Tds:111.222.222.111:4444/erpdb?charset=eucksc</value>
     </parameter>
     <parameter>
          <name>removeAbandoned</name>
          <value>true</value>
     </parameter>
     <parameter>
          <name>removeAbandonedTimeout</name>
          <value>60</value>
     </parameter>
  </ResourceParams> 
 </Context>

설정후 이 부분을 보면 jdbc:sybase:Tds:111.222.222.111:4444/erpdb?charset=eucksc 뒤에 파라미터로 캐릭터셋을

지정해 줬습니다. 여기서는 DB의 캐릭터셋을 지정해 주면 됩니다. Sybase에서 혹 안되면 eucksc 대신 euc-kr 로 해보면 될 것

같습니다. 여기서 좀 삽질을 했는데 DB의 캐릭터셋이 euc-kr이라 위에서 설정시 <parameter>에 넣고 설정해 봤는데 아래와

같으 오류가 발생했습니다. JNDI를 통해서 커넥션을 가져오면서 나오는 에러였는데 위와 같이 설정해 줌으로 해결됐습니다.

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (JZ004: DriverManager.getConnection(..., Properties)에 사용자 이름 속성이 없습니다.)

2. web.xml 수정(컨텍스트/WEB-INF/web.xml)

프로그램에서 JNDI를 통해 커넥션을 가져오기 위해 위에서 서버쪽의 server.xml에서 설정한 Resource name 과 동일하게

설정 해줍니다. 동일하지 않을경우 커넥션을 받을 수 없으므로 오류가 발생하게 됩니다.

 <resource-ref>
      <description>ERP DB</description>
      <res-ref-name>jdbc/erpdb</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
 </resource-ref>

2. 프로그램에서의 테스트

  Connection conn = null;
  InitialContext initContext = null;
  Context ctx = null;
  DataSource dataSource = null;

  try{
   initContext = new InitialContext();
   //ctx = (Context) initContext.lookup("java:comp/env");
   //dataSource = (DataSource) ctx.lookup("jdbc/erpdb");
   dataSource = (DataSource) initContext.lookup("java:comp/env/jdbc/erpdb");
  }catch(Exception e){
   System.out.println(e);
  }

  conn = dataSource.getConnection();

여기서 한가지 주의할 점은 경우에 따라 JDBC API도 톰캣 설치디렉토리의 common/lib 에만 위치 시키고 컨텍스트의

lib 디렉토리에서 중복될 경우 아래와 같은 오류가 발생할 수 있습니다.

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.sybase.jdbc2.jdbc.SybDriver'

여기까지 설정후에 확인해보시면 아마 제대로 되지 않을까 싶습니다. 그나저나 기존 소스에 JDBC 커넥션 맺는 부분을

어떻게 효과적으로 바꿀지가 더 고민이 되는군요. 파일이 수만개가 넘고 거의 모든곳에서 커넥션을 맺는 행위를 서블릿에서

init() 호출시 하도록 되어 있습니다. 노가다의 끝판왕을 보게 될 듯 싶네요 ㅎㅎ. 어쨋든 톰캣 구 버전을 사용할때 위 내용을

참고하면 될 듯 싶습니다.

 

 

신고
크리에이티브 커먼즈 라이선스
Creative Commons License

블로그에 거의 반년만에 글을 남겨봅니다. 요새 스마트폰 관련해서 하이브리드 어플을 개발중이라

많이 바쁘네요. 많은 개발자분들이 그러하듯 야근 야근 야근이 계속 되고있습니다.ㅜ_ㅜ 그래도

이번주에는 조금 풀려서 블로그도 한번 들러서 글을 써보게 되네요 ㅎㅎ. 사설은 여기까지 하고..

최근에 개발을 하면서 서버쪽으로 해봐야 될게 있어서 집에서 뒹구는 펜티엄3, 펜티엄4 PC에

각각 윈도우, 리눅스를 설치해서 APM서버설치, FTP서버를 설치했습니다. 각각의 사양은

아래와 같습니다.

Pentium III PC

CPU - Intel Pentium III 750Mhz(소비전력량이 성능에 비해 적은 편입니다. 19.5W)
RAM - PC100 256MB(원래는 96MB였는데 2천원 주고 업그레이드 했네요..;;)
HDD - 삼성전투기 20GB(과거 삼성 HDD소음은 알아주죠ㅎㅎ)

Pentium 4 PC

CPU - Intel Pentium 4 1.4GHz
RAM - PC133 512MB
HDD - 시게이트 20GB

보시다 시피 요즘 PC들에 비하면 초라하기 그지없는 사양입니다만 개인용도 서버로 쓰기엔

훌륭한 사양입니다. 이 두 PC에 서버프로그램들을 설치하고 속도테스트를 해봐야 되서

이것저것 하던중 전에는 소음,전기세 압박문제로 24시간 서버를 돌렸다가 닫았었는데

문득 펜티엄3 PC정도면 소비전력량이 많이 줄겠다는 생각이 들더군요. 그래서 현재 이 PC는

베란다에 내놓고 서버가동중입니다. 이렇게 구축하고 나서 이래저래 검색하다보니 신기한 기기가

눈에 띄더군요.. 바로 이겁니다.

사용자 삽입 이미지

Pogoplug - Home Server
(이미지 출처 : http://internet.watch.impress.co.jp)


처음 봤을때는 뭐하는 물건인가 싶었습니다. 쉽게 개인용도용 NAS라고 보시면 되겠습니다.

어디서나 인터넷만 된다면 저 Pogoplug를 설치해놓고 접속해서 파일을 공유할수 있습니다.

이런기능이야 별거 아니긴 하겠지만 위에서 제가 주절주절 떠들었던 이유는 바로 홈서버로

PC를 쓸경우 대부분 사용용도로 파일서버, 웹서버 위주로 사용하게 되는데 제 목적에 가장

부합하는 것이 바로 이런 기기였습니다. 회사에서 접속해서 집에있는 파일을 가져와야 될때도

있고 외부나갔을때도 유용하게 쓰일수 있겠죠. 이놈에 대해 좀더 자세히 봐보겠습니다.

사용자 삽입 이미지

크기가 아주 작습니다. 흔히 볼수 있는 가정용 공유기 크기보다 약간 작다고 보시면 되겠습니다.
사용자 삽입 이미지

그렇다면 사양은 어떨까요?

Power requirements: 100-240V, 50/60HZ

  • Drive connection: USB 2.0
  • Drive Formats: NTFS, FAT32, Mac OS Extended Journaled and non-Journaled (HFS+),
    EXT-2/EXT-3
  • Network connection: Gigabit Ethernet
  • Operating Systems: MS Windows XP, Vista, Windows 7, Mac OSX 10.5 and above
    (Intel and PowerPC) 32bit kernel only, Linux
  • Web browsers: Safari, FireFox 3, IE 7, IE 8, Chrome

  • 위는 제작사에서 밝히는 상세스펙입니다. 보시면 알겠지만 많은 디스크 포맷과 운영체제를 지원

    하고 기가비트 이더넷 사용이 마음에 드는군요.

    사용자 삽입 이미지
    실사용 예


    위와같이 자료는 USB외장하드나 USB스틱등에 넣어두고 랜선은 공유기나 직접 회선에 꼽아

    사용할수 있게 되있습니다. 현재 시중에 일반적으로 판매되는 NAS들이 그러하듯 이 녀석도

    내장 브라우저를 사용합니다. 가장 유심히 봤던 부분은 전력사용량인데 대기시 5W 이하라고

    하네요. 한가지 제일 중요한게 빠졌는데요. 가격은 꽤 비싸네요 $129에 팔리고 있습니다.

    하지만 아직 국내에선 구입할수 없네요. 뭐 이베이나 아마존등을 통해서 살수야 있겠지만

    너무 비쌀것 같습니다. 국내에 출시 된다면 가정용 서버에 관심있으신 분들에게 많이 팔릴것

    같네요. 저 또한 구입해보고 싶네요. 물론 저 정도 사양의 미니 NAS로 고성능을 바라면

    안되겠죠. 이 제품은 작은 사무실이나 소수의 사람들과 파일공유를 할때 쓰면 좋을듯 싶습니다.

    아직 국내판매되고 있진 않지만 이제는 들고다닐수 있는 NAS가 있다는 것만으로도 많은

    관심을 갖게 하네요. 어쨋거나.. 현재 저는 그냥 펜티엄3에 FTP,WEB서버 구축해서 돌리고

    있습니다. 자료도 별로 없지만 써보실 분은 써보세요.

    http://xens.iptime.org

    웹서버에서 FTP로 자동 포워딩 시켜줍니다. FTP로 바로 접속할분은 ftp://xens.iptime.org 로
    가시거나 FTP클라이언트 (알FTP등..) 를 사용하시면 되겠습니다.

    p.s : 원래는 dnip.net 의 서비스를 애용했었는데 작년 즈음해서 DNIP가 문을 닫았더군요.
    아쉽습니다..


    신고
    크리에이티브 커먼즈 라이선스
    Creative Commons License
    몇일전 개인적인 필요로 PHP나 AJAX를 사용하는 무료 웹하드 솔루션을 찾아보고 설치도 해봤지만

    간헐적인 오류가 발생하는등 안정적이지 못했습니다. 웹서버에 설치해서 쓰는 무료 웹하드 솔루션

    으로는 많이쓰이는 프리하드(http://freehard.eeaa.co.kr)나 꽤전에 AMS반디로 바뀌기전에 저도

    종종 썼던 아리소프트(http://van-di.com)의 반디가 있습니다.(현재 AMS반디로 바뀌고 체험판을
     
    다운로드 받아 사용해보실수 있습니다. 다만 JDK(Java Developer Kit)가 설치되있어야 합니다.)

    개인적으로 써봤을때 프리하드는 몇가지 불편한점이 많았는데 그냥 일반용도로 쓰기엔(고용량 파일

    업로드 제외) 쓸만했습니다만 디자인이 개선됐으면 하는 바램이 있네요. 이번에 Flex버전으로 새로

    출시가 됐는데 써봤지만 Active X를 사용하는것 외엔 오히려 이전버전이 성능면에서 나았습니다.

    그 이외에도 외산프로그램인 Ajaxplorer나 PHPNavigator를 설치해봤는데 여러모로 만족적이지

    못해서 그냥 FTP서버를 구성하기로 했습니다. 애초목적이 파일서버 구성이었기 때문에 보다

    안정적으로 운영하려고 운영체제는 리눅스를 선택했었는데 귀찮아서 관뒀습니다.;;

    셋팅하기전 최근에 소규모 기업체나 사무실에서 많이 쓰이는 NAS도 알아봤습니다.

    사용자 삽입 이미지
    넷기어 - 레디나스 듀오
    개인적으로 이제품이 제일 끌리더군요. 하지만 역시 가격이..ㅡㅡ;


    NAS를 알아본 이유는 일단 운영시 최대한 소음을 줄이고 확장성 용이를 들수 있었습니다. 요새

    출시되는 NAS는 핫스왑을 지원하기 때문에 전원이 켜진 상태에서도 손쉽게 확장이 가능합니다.

    뭐..그렇다고해서 주로 개인적으로 쓰일텐데 초기구축비용이 너무 많이 들더군요.. 왠만한 기능이

    포함된 NAS들은 가격이 50만원대.. 그나마 저렴한 D-link제품도 20만원 중반대의 가격이라서

    그냥 패스하기로 했습니다. 가격이 10만원대라면 어느정도 생각해볼만 하겠네요.

    다만 서버로 쓰일 컴퓨터에서 소음의 원흉인 HDD가 문제였지요.

    사용자 삽입 이미지

    이 모델은 아니지만 꽤 오래된 구형 삼성HDD(40GB*2)를 쓰고있었는데 요놈들이 일단 러닝타임도

    상당하고 혹사를 많이 당한 놈들이라 원래도 악명높았던 예전 삼성하드의 소음보다 더 심한 소음을

    내곤 했습니다. 구동시 위이잉~하며 엔진소리를 내다가 구동중에는 쌔애애애~ 하면서 쇳소리를-0-

    고주파음 보다는 덜 신경쓰이지만 장시간 사용하다보면 여간 신경 쓰이는게 아니었습니다.

    제 방에 서버를 구성해야되기 때문에 아무래도 이런 소음이 지속된다면 24시간 운영되는 서버구축은

    무리겠다 싶어 기존에 쓰던 시게이트의 ST38011A(80GB,2MB,7200RPM)의 

    중고HDD를 알아보게 됐습니다.

    사용자 삽입 이미지

    시게이트 바라쿠다 200GB

    근데 요새 출시됐던 시게이트 HDD 특정모델에서 펌웨어 문제로 HDD가 갑자기 죽어버렸다는 분들이

    많더군요. HDD살일이 없어서 메인 컴퓨터에서 쓰는 HDD는 죄다 출시된지 상당기간된 모델을

    사용중인데 전부다 시게이트 HDD를 사용중입니다. 저는 시게이트 하드만 10년 넘게 써오고

    있습니다. 저한테는 항상 시게이트 HDD가 제일 편하더군요.  뭐 어쨋든 위에서 말한 38011A모델을

    미리 쓰고있었고 굴린지 오래됐는데도 소음이 거의 없었기 때문에 중고로 HDD를 구입했습니다.

    HDD는 어떤혹사를 당했는지 제품을 사용하기 전에는 겉만보고 판단하기 힘들어서 왠만하면 중고

    구입을 하지 않지만 가격도 싸길래 그냥 믿고 산뒤에 도스용 HDD검사 유틸리티인 MHDD로 SMART

    정보를 보니 정말 거의 사용을 안한 HDD더군요. ㅋㅋ 아주 편하게 아크로니스 트루이미지로 디스크

    클론해서 FTP서버를 구축해뒀습니다. 기존에 여러 사용자를 거쳐 저한테도 갖은 혹사를 당했던

    삼성HDD 두개는 백업서버로 들어가게 됐네요. 잡소리가 많았는데 어쨋든 오픈한 FTP서버는

    익명사용자(anonymous) 접속을 허용했습니다. (다만 업로드,삭제등은 불가능 합니다.)

     웹브라우저로 접속 가능하고 ftp:// 를 쓰지않고 그냥 http://xens.dnip.net 으로 접속하시면 됩니다.

    (FTP클라이언트를 쓰시는 분들은 Putty로는접속 불가능합니다.) 자료는..별것 없지만 거의

    개인용도로 쓰려고 만든것이라..크게 신경쓰진 않고 있네요. 그저 영화 몇개랑 잡 프로그램 몇개 들어

    있습니다. 예전에 FTP서버를 쓸때는 ratio까지 적용하고 가입신청 양식까지 받아서 운영했었는데

    이게 영 귀찮아서 이제는 그냥 쓸렵니다. 혹시 블로그 이웃분들중에 이것저것 잡 자료 박아놓으실

    분들은제게 메일 보내주시면 계정 만들어 드리겠습니다. 아무튼 공개사용자 분들을 위해 가끔 자료도
    업데이트 할것이니 테스트들 해보시구요. 많은 사용자를 커버하기엔 당연히 무리가 있겠지만 딱히

    속도제한은 두지 않았습니다. (현재 메가패스 FTTH쓰고있습니다.)

    그럼 관심있으신 분들은 테스트 해보시길..

    http://xens.dnip.net

    ftp://xens.dnip.net
    신고
    삽질 로그 LOG 2007.11.08 02:50
    크리에이티브 커먼즈 라이선스
    Creative Commons License
    최근 몇일간 서버를 통채로 업그레이드 하면서 많은 문제가 발생했었다. 아파치 서버를 최신

    버전인 2.2.6으로 업그레이드 한뒤 서버를 재구동 하는데 local에서 블로그 접속시에 부하가

    너무나 심각했다. 혹시 PHP가 맞지 않아서인지 싶어 PHP또한 최신버전인 5.2.4로 업그레이드

    한뒤 재구동 했지만 거의 비슷했다. 내친김에 Mysql 까지 5.0.42 버전으로 업그레이드를 감행!

    하지만..결과는 역시나였다..

    처음엔 블로그 접근시에 비정상적으로 많은 메모리를 소모하는 Apache.exe 프로세스가

    메모리를 반환못하는문제가 있는가싶어(*PHP프로그램의 소스가 잘못됐을경우 실행시 이런경우

    가 많이 생긴다.) 이곳저곳 많이 뒤져봤지만 원하는 답을 찾을수는 없었다. 이다음으로 의심해

    본것은 서버 모듈의 충돌이었다. 그저께인가 포스팅 한글중에 트랙백이 걸리지 않는다고 하신

    분들이 계셔서 보안모듈이 차단시키는게 아닐까 싶은 의심이 생겨 처리하고 수정한김에 다른

    반드시 필요하지 않다고 생각되는 모듈은 모두 막아놓았다. 트랙백걸기 문제까진 해결했으나

    테터툴즈를 사용할때에 비해 텍스트큐브로 옮기고 나서 많은 문제점에 부딪히고 있다.

    어제는 그래서 텍스트큐브의 데이터(SQL DB등등..)를 모두 백업시키고 기존 SQL DB자체도

    몽땅지운뒤에 새로 설치했지만 이전에 테터툴즈 마지막 버전에서 텍스트큐브로 업그레이드 할때

    발생했던 체크업오류 가 새로 설치하는데도 똑같이 발생하는것이었다. ㅜ_ㅜ

  • 필터와 관련된 구조를 변경합니다.: 실패
  • 서비스 설정을 위한 테이블을 추가합니다.: 실패
  • 사용자 설정값과 관련된 구조를 변경합니다: 실패
  • 팀블로그 기능을 위한 테이블을 추가합니다.: 실패
  • XML-RPC ping 설정을 위한 테이블을 추가합니다.: 실패
  • 페이지 캐싱을 위한 테이블을 추가합니다.: 실패


    바로 위와같은 오류가 테터툴즈에서 텍스트큐브로 업데이트 할때도 발생했는데 새로 설치

    하는데도 불구하고 계속 발생하는 것이다.. 그래서 해본 짓거리들은 아래순서와같다.

    1. 완전 깨끗한 아무런 수정이 가해지지 않은 Apache서버를 가상머신(Vmware)를 통해 설치
       (Apache 2.2.6과 Apache 2.2.4 , Apache 2.0.59를 모두 따로 설치해봄 Mysql은 5.0.24와
        5.0.42버전으로 각각 따로 설치해보았다.)

    2. 테터툴즈 마지막 버전(Animato)를 단일형블로그로 예전처럼 설치후에 텍스트 큐브로
       업그레이드후 체크업!

    3. 결과는 역시나 체크업 에러 ㅜ_ㅜ


    4. 되지도 않겠지만 백업해둔 SQL DB를 덮어씌워본뒤 체크업! 여전히 에러 ㅋㅋㅋㅋ

    위의 과정들을 글로 쓰니 얼마 안되지만.. 원인을 모르니 웹을 이리저리 뒤져보고 했던 시간까지

    합하면 이번주에 학교다녀온시간을 제외하고는 거의 이짓거리에 투자한것이다.. 혹여나해서

    외국사이트 까지 뒤져봤지만 확실한 해결방법을 찾긴 어려웠다. 나뿐만이 아니라 텍스트큐브를

    쓰시는 몇몇 분들이 이런 증상을 겪으시고 테터툴즈로 롤백하는 경우도 많이보고.. 어떤분은

    호스팅 업체에서 부하가 많이 걸린다고 차단 당하신 분들도 있고.. 물론 텍스트큐브 홈페이지

    (http://textcube.org) 와 테터툴즈 문답게시판도 다 뒤져봤지만 해결방안을 찾을수가 없었다.

    서버돌리면서 전기세도 많이 나가고 안그래도 부족한 시간도 많이 뺏기고 그냥 편하게 티스토리

    로 옮기고 싶다는 생각도 여러번 했지만 힘들게 하나하나 알아가는것도 즐겁고(?) 해서 아직은

    계속 개인서버를 돌리도록 해야겠다. 여하튼 문제가 해결되지 않아서 이젠 별별 의심을 다해보기

    시작했다. 우라질레이션! 나에게 왜 이런 시련이..

    1. 쓰고있는 카스퍼스키 인터넷 시큐리티가 방해가된다(ㅡㅡㅋ 그럴일은 만무할듯..)
    2. 서버의 로그에 남은 IP를 nslookup 으로 확인해본결과 구글,야후에서 무차별로 웹페이지를
        긁어가서 부하가 더욱 가중된다.(이건 사실이기도 하고 테터툴즈를 사용할때도 있던 문제
        였지만 어쨋든..;;; 이 의문점에 대해선 애드센스 때문에 구글을 제외하고 봇차단을 해볼 생각
        이다.)
    3. 귀찮다..그냥쓰다가 텍스트큐브 2.0이나 1.6이 정식런칭될때까지 참아본다.;;


    이렇게 생각하고 있다. 휴.. 3번에 자꾸 끌리는건 왜일까?-0- 누가 체크업 에러 해결방법 아시는분들 답좀 부탁드려요 ㅠ_ㅠ
  • 신고
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    (이 글은 윈도우용 아파치 서버 2.2.x 버전을 기준으로 작성되었습니다. 1.x 버전의 아파치 서버나
     리눅스용 아파치 서버에는 적용되지 않는 부분이 상당수 있으므로 이 점 참고하시기 바랍니다.)

    APM을 설치하고 나서 기본설정만으로 운영할수는 있으나 서버의 전체적인 성능과 보안을 위한
    설정을 해주는것이 좋다. 아래의 내용은 아파치 재단 홈페이지(http://apache.org) 에서 배포하는
    윈도우용 2.2.4 아파치를 기준으로 수정했고 RWAPM의 설정파일 내용중 대부분을 참고했다.

    -참고사항(수정한 부분, 사용자환경에 맞춰서 바꾸도록 한다.)-
     ⊙ 아파치서버가 설치된 디렉토리 : C:\APM\Apache2
     ⊙ PHP가 설치된 디렉토리 : C:\APM\PHP
     ⊙ PHPmyadmin 이 설치된 디렉토리 : C:\APM\phpmyadmin
     ⊙ '#'은 주석을 의미하며 아래 설정파일 내용은 그대로 복사해서 사용가능하다.

    -------------------------------------------------------------------

    #서버가 설치된 경로
    #가능하면 Apache나 APM은 루트디렉토리에 설치하는것이 좋다. 설정도 편해지고 긴경로가
    #정확하지 않으면 기타 모듈들이 제대로 읽히지 않을수도 있다.

    ServerRoot "C:\APM/Apache2"

    #PID(Process ID) : 아파치 프로세스의 고유ID가 저장되는 파일을 저장하는 경로를 정해준다.

    #Timeout : 클라이언트 접속시 받기, 보내기의 타임아웃 시간을 지정한다. 시간이 너무 짧을경우
    #클라이언트가 서버의 내용을 제대로 읽지 못하고 튕겨질수 있다.

    #KeepAlive : 서버의 전반적인 성능에 영향을 주는 지시문이다. 클라이언트가 한번의 접속으로
    #지속적인 요청을 수행할수 있게할지 못하게할지 설정해주는 부분이다. 서버의 사양이 좋지 않다면
    #부하가 심할수있으나 접속자가 적고 저사양의 서버라면 Off로 해두는것이 좋다.

    #MaxKeepAliveRequests : KeepAlive와 연관된 부분으로 지속된 접속시간동안 처리할수 있는
    #최대 요청갯수를 의미한다. 높은값을 주는것이 좋다.

    #KeepAliveTimeout : 클라이언트가 접속상태에서 해당 클라이언트의 요청이 타임아웃되는 시간

    PidFile logs/httpd.pid
    Timeout 300
    KeepAlive On
    MaxKeepAliveRequests 1000
    KeepAliveTimeout 30

    #Multiprocessing Module 섹션
    #아파치 서버의 1.x 버전에서는 없던 기능이 2.x에서 부터 추가되었으며 1.x버전보다 적은 자원을
    #사용해서 여러요청을 처리할수 있게 했다는 한마디로 성능이 향상된 부분이다.

    #ThereadsPerChild : 하나의 프로세스당 몇개의 thread를 유지하고 있을지 설정해주는 부분이다.
    #최대 1024까지 늘릴수 있는데 리눅스용은 재컴파일을 통해 이를 수정할수 있다. 서버의 사양이
    #좋지 않다면 이값을 과도하게 늘리지 않는것이 좋다.

    #MaxRequestsPerChild : 하나의 프로세스가 몇번의 요청을 수행하고 죽을지 설정해주는 부분이다.
    #아래 내용과 같이 설정하면 10000번의 요청을 수행한뒤 ChildProcess하나가 죽고 새로 생성된다.
    #값을 '0'으로 주면 무한대를 의미하며 서버의 사양이 좋지않다면 1000정도의 값을 권장한다. 무한대
    #로 설정하는것이 좋을수도 있으나 일반PC를 서버로 쓰는경우 여러가지 오류로 메모리 누출이 생길
    #수 있으므로 값을 적당히 설정해주는것이 좋다.

    #Win32DisableAcceptEx : 가끔 네트워크를 사용할수 없다는 오류를 에러로그에서 발견할수있는데
    #이구문을 활성화 하면 괜찮아진다.

    <IfModule mpm_winnt.c>
    ThreadsPerChild 200
    MaxRequestsPerChild  10000
    #Win32DisableAcceptEx
    </IfModule>

    #읽어들일 포트번호 설정
    #기본적으로 80번포트가 웹서버 포트이나 ISP들이 자체적으로 막아놓은 경우가 있다. 이경우엔
    #다른 포트를 사용해야 하는데 8080,9999등의 포트가 많이 쓰인다. 이경우 Listen 9999 등으로설정
    #해주면 된다.

    Listen 80

    #Dynamic Shared Object (동적공유객체) 모듈 섹션
    #아래내용은 아파치 2.x 버전에서 기본적으로 로딩되는 모듈에 몇가지가 추가 되어있는데
    #필요없는 모듈은 주석처리를 해서 읽어들이지 않는것이 좋다. 기본적으로 제공되는 모듈외에
    #서드파티 모듈또한 LoadModule 지시어를 사용해 쉽게 읽어들일수 있다. 적재순서에 따라
    #성능에 영향을 줄수 있다고 한다.

    more..

    #PHP 모듈 로딩섹션
    #PHP를 연동시키기 위해 반드시 필요한 설정부분이다. 아파치 2.0.x 버전의 경우 php5apache2.dll
    #를 읽어들여야 한다.

    LoadModule php5_module "../php5/php5apache2_2.dll"

    #Third Party 모듈 설정섹션(mod_evasive, mod_bandwidth, mod_security2)
    #아파치에서 기본적으로 제공하는 모듈이 아니므로 따로 구해야한다. 구하지 못했다면 이부분은
    #그냥 넘어가도 된다.

    #Dos(Denial of Service),DDos(Distributed Denial of Service) 공격 방어 모듈설정
    #리눅스의 경우 iptable을 사용해 근본적으로 막을수 있으나 윈도우에서는 IPsec등을 사용해야
    #한다. 이 모듈은 개인용도의 서버에는 쓸만한 모듈이지만 과도한 공격이 시도될경우 서버가
    #뻗어버릴수 있다. 이 모듈은 윈도우용으로 기본제공 되지 않으며 http://apachelounge.com
    #에서 구할수 있다.

    LoadModule evasive_module modules/mod_evasive.so
    <IfModule evasive_module>
        DOSHashTableSize    3097
        DOSPageCount        70
        DOSPageInterval     1
        DOSSiteCount        200
        DOSSiteInterval     1
        DOSBlockingPeriod   10
        DOSLogDir "C:/APM/Apache2/logs"
    </IfModule>

    #Apache 방화벽 ModSecurity2 설정
    #1.x 버전의 경우 한개의 설정파일에서 모든것을 관리했으나 2.x 버전에서는 여러가지 설정으로
    #많은 부분의 부적절한 접속 시도를 막아준다. 상용 방화벽에 버금가는 강력한 공개 방화벽 모듈
    #로 알려져있다. 윈도우용이 제공되지 않으며 http://apachelounge.com 에서 구할수있다.
    #2.0.x , 2.2.x 버전에서 사용가능하다.

    LoadModule security2_module modules/mod_security2.so
    <IfModule security2_module>
    Include conf/security/modsecurity_crs_10_config.conf
    Include conf/security/modsecurity_crs_21_protocol_anomalies.conf
    Include conf/security/modsecurity_crs_35_bad_robots.conf
    Include conf/security/modsecurity_crs_45_trojans.conf
    Include conf/security/modsecurity_crs_55_marketing.conf
    Include conf/security/modsecurity_crs_20_protocol_violations.conf
    Include conf/security/modsecurity_crs_30_http_policy.conf
    Include conf/security/modsecurity_crs_40_generic_attacks.conf
    Include conf/security/modsecurity_crs_50_outbound.conf
    </IfModule>

    #Bandwidth(대역폭) 제한모듈 mod_bandwidth 설정
    #전송되는 파일의 속도를 일정하게 유지시켜주는 모듈이다. 아래의 LargeFileLimit 부분의
    #1024 250000 의 의미는 1024kb 가 넘는 파일은 250kb의 속도로 전송하라는 의미이다. 사용자의
    #환경에 맞춰 수정해서 사용하면 된다. 이 모듈역시 http://apachelounge.com 에서 구할수 있고
    #없어졌다면 이블로그에서 찾을수 있다.

    LoadModule bw_module modules/mod_bw.so
    <IfModule bw_module>
    BandWidthModule On
    ForceBandWidthModule On
    LargeFileLimit * 1024  250000
    </IfModule>

    #압축전송모듈
    #Mod_deflate가 활성화 되있어야 사용할수 있다. 설정에서 정해진 파일들을 읽어들이는
    #속도의 향상이 있다.
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv|swf|exe|pdf|doc|xsl|hwp|css|js|java|c|t?gz|bz2|7z)$ no-gzip dont-vary
    Header append Vary User-Agent env=!dont-vary
    </Location>

    #서버관리자의 정보를 입력하는 부분이다.
    #ServerName의 경우 정해진 도메인명의 이름을 써주는것이 좋지만 localhost나 127.0.0.1을 써줘도
    #별 영향이 없으나 정확한 IP주소를 입력할경우 리다이렉션이 가능하게 해줄수 있다.
    #UseCanonicalName : Off,DNS의 옵션을 써줄수 있는데 off는 이름기반의 호스트에서 쓰이며 DNS
    #옵션은 IP기반 호스트에서 쓰인다. 일반적으로는 Off로 해두면 된다.

    ServerAdmin test@example.com
    ServerName localhost
    UseCanonicalName Off

    #Document 디렉토리 설정섹션

    #저장될 문서디렉토리를 지정해주는 부분이다. 물론 따로 디렉토리를 설정해 줄 부분이 있다면
    #<Directory> 구문으로 추가 및 수정을 할수 있다.

    #FollowSymLinks : 윈도우의 단축아이콘은 보안상 사용하지 않는것을 권장하고 있다.

    #AllOverride : 인증관련 파일인 .htaccess와 관련된 부분이다. 아파치가 접근할수 있는 디렉토리
    #들에 대해 어떤 기능을 허용 또는 거부 할것인지 설정할수 있는 부분이다. none을 권장한다.
    #Authconfig,Limit,All,Fileinfo 등의 지시자를 사용할수 있으나 특별한 상황이 없는경우 none을
    #사용하도록 한다.

    #Indexes : 설정해서 읽어들일 html,htm,php등의 파일이 없을때 파일리스트를 불러 들이는 지시
    #자 이다. 타인에게 리스트를 보여주고 싶지 않다면 indexes를 삭제하면 된다.

    #Order, Deny, Allow : Order로 allow나 deny를 지정해주고 어느부분에서 허용또는 거부할것
    #인지 정한다.

    DocumentRoot "C:\APM\htdocs"
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory "C:\APM\htdocs">
    Options FollowSymLinks Multiviews
    AllowOverride FileInfo
    Order allow,deny
    Allow from all
    </Directory>

    #User 디렉토리 설정섹션
    #이 디렉토리를 통해 간단한 호스팅을 할 수 있다. 예를들어 parkdi 라는 디렉토리를 user
    #디렉토리에 넣어두면 사용자의 주소는 http://example.com/~parkdi 가 된다.

    UserDir "C:\APM\users"

    <Directory "C:\APM\users">
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS PROPFIND>
    Order allow,deny
    Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
    Order deny,allow
    Deny from all
    </LimitExcept>
    </Directory>

    #인덱스로 사용할 파일명 설정 스페이스바로 구분한다. 동일 파일명이 있을시 앞쪽 파일이
    #우선권을 가진다.

    DirectoryIndex index.html index.htm index.php index.php3
    AccessFileName .htaccess

    #특정파일 형식을 지정해서 접근하지 못하게 한다. 여기서는 ht로 시작되는 모든파일에 대한
    #접근금지와 bak,sav,orig,old 파일의 접근을 금지하고 있다.

    <FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    </FilesMatch>
    <LocationMatch /*(\~|\.bak|\.sav|\.orig|\.old)$>
    deny from all
    </LocationMatch>

    #mime.types파일이 저장된 위치를 지정하는 부분
    TypesConfig conf/mime.types

    #파일확장자를 통해 MIME타입을 알수 있는 문서에대해 기본적으로 쓸 MIME타입을 지정해준다.
    #텍스트가 위주라면 text/plain으로 이미지나 바이너리 파일이 있다면 파일을 텍스트 형식으로 불러
    #들이지 않게 application/octet-stream 을 입력해준다.

    DefaultType text/plain

    #인터넷 문서의 형식이 지정되있지 않을경우 파일의 내용을 통해 자동결정 하게 된다. 이를 conf
    #폴더내의 magic 파일을 통해서 문서형식을 결정하게 된다.

    <IfModule mod_mime_magic.c>
    MIMEMagicFile conf/magic
    </IfModule>

    #EnableMMAP : 메모리매핑에 관련된 부분으로 성능향상을 가져올수 있다고 하는데 충돌이 생겨
    #서버가 다운될수도 있으므로 기본값을 유지하는것을 권장하고 있다.

    #EnableSendfile : 커널이 지원하는 형식을 통해 파일을 전송한다.

    #HostnameLookups : 클라이언트의 IP,이름을 기록할지의 여부를 결정하는 부분이다. 기본값인
    #off로 해둘경우 클라이언트의 IP를 저장하게 되며 on으로 해둘경우 이름으로 저장하게 된다.
    #on으로 해두면 적어도 한번은 서버에 네임서버 요청이 발생하므로 꺼두는것이 서버의 부하를
    #하나라도 줄여주는 길이다.

    HostnameLookups Off
    EnableMMAP off
    EnableSendfile on

    #로그파일이 저장될 형식을 지정하는 부분이다. error 로그의 경우 warn,debug,info,notice,crit
    #alert 등의 값을 결합할수 있는데 로그파일의 크기가 상당히 커질수 있으므로 warn으로 지정해
    #두는것이 좋다.
    #LogFormat : CustomLog지시자에서 사용할 형식에 대한 지정부분이다.

    ErrorLog logs/error.log
    LogLevel warn

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent

    # You need to enable mod_logio.c to use %I and %O
    #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combined

    #로그파일의 위치,형식지정
    #형식을 지정하지 않으면 모든 메시지를 로그파일에 저장하게 되고 지나치게 큰 로그파일은 서버
    #의 속도를 저하시킨다.

    CustomLog logs/access.log common
    #CustomLog logs/referer.log referer
    #CustomLog logs/agent.log agent
    #CustomLog logs/access.log combined

    #서버의 정보를 어느정도 까지 보여줄지 지정해주는 부분이다.
    #ServerTokens Prod : Apache의 모든정보만 보여줌
    #ServerTokens Min : Apache의 버전정보만 보여줌
    #ServerTokens OS : Apache의 버전과 운영체제를 보여줌
    #ServerTokens Full : 모든정보를 표시함
    #ServerSignature : Off로 해두면 브라우저에서 보일수 있는 에러페이지의 아파치 서버 정보를
    #숨길수 있다.

    ServerTokens Full
    ServerSignature Off

    #별칭(가짜이름)을 지정해주는 부분이다. 적용예는 'Alias 별칭 실제이름' 으로 지정할수 있다.
    #이는 서버의 메인디렉토리에 없는 부분을 마치 있는것처럼 속여주는 부분인데 아래의 예와같이
    #메인디렉토리에 phpmyadmin 디렉토리에 phpmyadmin이 설치되있다면 alias를 지정시 따로
    #별칭을 만들게 되어 운영이 비효율적이게 된다. 참고해서 수정,사용하도록한다. alias를 사용해서
    #다른 디스크드라이브에 있는 내용을 마치 메인디렉토리에 있는것 처럼 사용할수 있다.

    Alias /phpmyadmin "C:\APM/phpMyAdmin"
    Alias /icons/ "C:\APM/Apache2/icons/"

    <Directory "C:\APM/Apache2/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>

    #디렉토리 목록 표시여부를 결정하는(어떻게 보일지) 부분이다.
    IndexOptions FancyIndexing VersionSort

    #서버에게 파일,확장자에 대해 어떤 아이콘을 보여줄지 설정해주는 부분이다. 이 설정은
    #바로 위에서 FancyIndexing 을 사용했을때 적용가능하다.

    more..

    #ReadmeName : 디렉토리 목록뒤에 내용을 덧붙힐 Readme파일의 이름을 설정한다.
    #HeaderName : 디렉토리 인덱스 앞에 내용을 덧붙힐 파일명을 설정한다.
    #클라이언트의 요청시 서버는 readme.html파일을 찾게되고 없으면 txt파일을 찾아서 텍스트
    #내용으로 표시하게 된다.

    ReadmeName README.html
    HeaderName HEADER.html

    #디렉토리 인덱싱의 목록에서 제외할 파일명을 설정한다.
    IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

    #문서의 언어를 명시하는 부분이다. 웹브라우저가 이해할수 있는 언어의 문서를 제공할 수 있다.

    more..


    #언어셋 섹션
    AddCharset ISO-8859-1  .iso8859-1 .latin1
    AddCharset ISO-8859-2  .iso8859-2 .latin2 .cen
    AddCharset ISO-8859-3  .iso8859-3 .latin3
    AddCharset ISO-8859-4  .iso8859-4 .latin4
    AddCharset ISO-8859-5  .iso8859-5 .latin5 .cyr .iso-ru
    AddCharset ISO-8859-6  .iso8859-6 .latin6 .arb
    AddCharset ISO-8859-7  .iso8859-7 .latin7 .grk
    AddCharset ISO-8859-8  .iso8859-8 .latin8 .heb
    AddCharset ISO-8859-9  .iso8859-9 .latin9 .trk
    AddCharset ISO-2022-JP .iso2022-jp .jis
    AddCharset ISO-2022-KR .iso2022-kr .kis
    AddCharset ISO-2022-CN .iso2022-cn .cis
    AddCharset Big5        .Big5       .big5

    # For russian, more than one charset is used (depends on client, mostly):
    AddCharset WINDOWS-1251 .cp-1251   .win-1251
    AddCharset CP866       .cp866
    AddCharset KOI8-r      .koi8-r .koi8-ru
    AddCharset KOI8-ru     .koi8-uk .ua
    AddCharset ISO-10646-UCS-2 .ucs2
    AddCharset ISO-10646-UCS-4 .ucs4
    AddCharset UTF-8       .utf8
    AddCharset GB2312      .gb2312 .gb
    AddCharset utf-7       .utf7
    AddCharset utf-8       .utf8
    AddCharset big5        .big5 .b5
    AddCharset EUC-TW      .euc-tw
    AddCharset EUC-JP      .euc-jp
    AddCharset EUC-KR      .euc-kr
    AddCharset shift_jis   .sjis

    #mime.types파일의 수정없이 MIME설정을 할수 있게 해주는 부분이다. 또한 아래와 같이 특정 파일
    #들에 대해 특정타입으로 처리할수 있게 해준다.

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    #AddHandler를 사용함으로 파일들의 확장자나 처리기(예 : CGI라면 Perl등..)을 연결하거나 파일
    #타입에 대한 동작을 연결할 수 있다.

    AddHandler cgi-script .cgi .pl .pm
    AddHandler type-map var
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml

    #PHP를 위한 설정 AddType 사용으로 php확장자의 파일들에 대한 처리 타입을 지정해주고 php.ini
    #파일이 있는 위치를 설정해준다.

    AddType application/x-httpd-php .php .php3 .htm .html .inc .phtml
    PHPIniDir "C:\APM\php5"

    #에러 메시지 다국어 표시 섹션


    #이부분을 없애버리거나 주석처리 하면 오류페이지 자체가 뜨지 않는다.

    more..

    #CodeRed/Nimda 로그를 남기지 않게 하고 차단시켜 MS 홈페이지로 리다이렉트로 이동하는 섹션

    more..

    #버추얼 호스트 설정파일 인클루드. conf 디렉토리에 두는것이 관리가 편하다.
    Include conf/vhost.conf

    #아파치 2.x 나 2.2.x 버전중 SSL페이지를 사용할수 있는 버전을 다운로드 해서 설치했고 필요
    #하다면 인클루드 시킨다.

    #LoadFile bin/libeay32.dll
    #LoadFile bin/ssleay32.dll
    #LoadModule ssl_module modules/mod_ssl.so

    # SSL 버추얼 호스트설정파일 인클루드.

    #<IfModule mod_ssl.c>
    #Include conf/ssl.conf
    #</IfModule>

    신고
    득템일지 LOG 2007.06.28 09:54
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    이불이 땀에 쩔어서 도저히 덮을수도 없겠고 이제 곧 집으로 돌아가기 때문에 빨래를 돌리고 옥상

    에 널어놓으려고 간순간 버려진 컴퓨터를 발견했다. 사실 꽤전에 봤던것이긴 했는데 그냥 놔둿었다

    가 무슨 생각이 들었는지 본체를 통채로 들고 가져왔다. 이왕 줏어온거 한번 살펴보기로 했다.

    사용자 삽입 이미지

    줏어온 컴퓨터 본체내부 추잡하기 이를데 없다. 미키마우스가 안을 활보하고 다녔을지도 모르겠다.

    사용자 삽입 이미지

    쓸수있는 부품이 있다고 판단, 해체모드로 돌입했다. 대략 뜯다보니 내가 고등학교 2학년때 한창

    쓰던 인텔 BX메인보드를 쓰는 컴퓨터로 추정됐다. 그럼 이건 언제 버려진건지 ㅡㅡ;;

    사용자 삽입 이미지

     넥스트 통신社의 모뎀이다. 아마 56Kbps의 속도를 보였던걸로 기억한다. 부품이 녹슬어서 쓸데없음

    사용자 삽입 이미지

    ISA슬롯을 쓰는 ESS1868칩이 달린 사운드 블래스터 호환 사운드 카드이다. 집에는 이것보다 훨씬

    전에 나온 ESS1688 칩을 달고 있는 사운드카드를 달아놓은 컴퓨터가 버티고 있다. 이것도 부품들이

    녹슬어서 패스~

    사용자 삽입 이미지

      인텔이 저가형 CPU 시장에서 성공하는데 크게 기여했던 셀러론 300A(코드명:멘도시노) 이다.

    이놈은 수율에 따라 오버클럭이 잘되서 파워유저들에게 인기가 많았다. 나또한 300A를 오버클럭해서

    450Mhz까지 올려썼던 기억이 있다. 과열을 이기지 못해 타버리는 바람에 얻어온 466Mhz 셀러론

    소켓형을 라이져 카드를 사용해서 다른 컴퓨터에 설치해두었다. (http://xens.dnip.net/52)
    사용자 삽입 이미지
    가장많이 쓰이는 저가형 랜카드 Realtek(일명 꽃게표)8139c 모델이다. 요새는 내장형 랜카드 시장

    에서 Marvell Yukon 社의 칩이 많이 쓰이는데 일반적인 용도로 쓰기엔 Realtek 랜카드 만큼 싸고

    좋은 제품도 드물다 생각한다. 이것도 녹슬어서 패쓰~


    사용자 삽입 이미지

    부두밴쉬가 한창 판을 칠때 오락을 안하던 유저들에게 인기있던 S3 Trio 3D칩을 쓴 그래픽 카드이다.

    내친구도 썼었는데 성능은 가히 묻지마 이다. 이것도 응급용으로 가져갈까 했지만 안타깝게도 PCB

    뒷면이 죄다 녹슬어서 패쓰..
    사용자 삽입 이미지
    삼성 PC100 SDRAM이다. 용량은 잘모르겠다. 집에서 조립해놓은 안쓰는 컴퓨터가 PC100 32Mb

    짜리 SDRAM을 쓰는데 소켓도 남으니까 한번 달아봐야겠다. 상태가 매우 양호해서 이건 수확물

    사용자 삽입 이미지

    삼성 4.32Gb, 시게이트 ST34311A 4.3Gb HDD들이다. 삼성 HDD는 이당시에 불량률이 높아 무상

    A/S로 HDD를 아예 교체해줘버리는 경우가 많아서 인기가 많았다. 그당시 PC통신 동호회 에서도

    삼성HDD불량이에요 하면 나오는 답이 교환해달라 하세요 였을 정도니까.. 저렇게 겉면에 PCB를

    보호하기 위해 가죽같은걸 씌워놓은 시게이트 HDD모델이 저게 처음이자 마지막으로 알고 있다.

    아마도 발열문제 때문이 아니였을까? 어쨋건 둘다 PCB부위도 새것처럼 깨끗하고 작동할듯 싶어서

    이것도 수확물 리스트에 포함됐다.


    사용자 삽입 이미지

    삼성 CD롬, 32배속으로 추정된다. 플레이 버튼이 없어서 시디플레이어로 재활용 할수 없다는것이

    아쉽지만 집에 몇대씩 조립되서 있는 컴퓨터들은 시디롬 하나 있는것이 없다. 집에 돌아가면 온갖

    테스트용으로 쓰일 세컨 컴퓨터(P4 1.8Ghz,256SDRAM)에 달아놓고 써야겠다. 위에 수확물 HDD들

    도 그컴퓨터에 설치할 예정이다. 아마도 그컴퓨터엔 리눅스를 설치하게 될 것 같다.
     

    사용자 삽입 이미지

    MAD Palace를 움직이는 서버이다. 말이 서버지 빈약하기 이를데 없다. 지금도 쫌만 뭐했다고 지

    날덥고 짜증난다고 CPU팬으로 굉음을 부려서 귀를 괴롭히고 있다. 꽤 긴 기간을 두고 아마 지금

    운영하고 있는 서버대신 위에서 말했던 세컨컴에 리눅스를 설치해서 이전하지 않게 될까 싶다. 방학

    때 이것저것 할게 많아서 언제 가능할지는 모르겠지만 시도해봐야겠다. 어쨋든..내일부터 7월이

    시작되는 다음주 월요일 까지는 Mad Palace에 접속이 되지 않는다.. 컴퓨터를 가져가야 되니까..

    개인적으로 용무가 있거나 사랑의 메시지를 남기고 싶으신 분들은 http://xens.tistory.com

    댓글을 남겨주시면 되겠다.~~
    신고

    'LOG' 카테고리의 다른 글

    MAD Palace 복귀했습니다.~  (10) 2007.07.02
    구글 애드센스 배치를 바꾸다..  (4) 2007.06.28
    득템일지  (8) 2007.06.28
    서버 업그레이드 단행  (6) 2007.06.22
    아아..이놈의 공과금..  (12) 2007.06.07
    잡다한 얘기들..  (4) 2007.05.25
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    이번에는 윈도우 서버제품을 사용한 IIS(Internet Information Service)를 사용한 웹서버 구축에

    대하여 알아보겠다. 굳이 서버 제품군을 구하기 힘들다면 윈도우 2000 이나 윈도우 XP를 통해서도

    사용해 볼수있다. 강좌의 중점은 활용보다는 웹서버 자체를 구축하는 방법에 대해서 훓어보는 형식

    이 될듯 하다. 개인적으로 IIS가 왠지 Apache보다 못하다는 생각이 들어서 사용하지 않는데다가

    현재 Apache서버를 쓰고있는 상황에서 IIS를 사용하여 PHP,Mysql연동을 시키는 것이 귀찮기도

    하고 많은 부분을 까먹어서 검색해보고 하지 않으면 할수도 없기 때문에 여기서는 IIS로 웹서버

    서비스 구동부분까지만 설명 하도록 하겠다.

    사용자 삽입 이미지

    윈도우 2003 Server Enterprise Edition이 설치중인 화면. 별달리 설정할 곳은 없다.. 필자의 경우

    영문판밖에 가지고 있질 않아서 영문판으로 설치 중이다. IIS를 다 해보고 나선 2003은 안녕이

    될것이다..

    사용자 삽입 이미지

    IIS를 설치중인 화면이다. 제어판->프로그램 추가/제거-> 윈도우 구성요소 추가설치/삭제에서

    인터넷 정보 서비스(IIS)를 설치 혹은 삭제 할수가 있다. 현재는 설치 중이다.

    사용자 삽입 이미지

    설치가 끝나면 제어판에서 '관리도구' 내의 인터넷 정보 서비스(IIS)를 선택 하기로 한다.

    여기서 화면에 나온대로 기본 웹사이트를 클릭 한뒤 속성을 눌러준다.

    사용자 삽입 이미지

    TCP포트는 만약 VMware환경(호스트 컴퓨터에 웹서버가 설치안된)에서 윈도우서버 2003이나 다른

    OS를 설치해서 IIS를 쓰고자 한다면 80번 포트(웹서버 기본)를 그대로 놔두어도 되지만 웹서버를

    따로 쓰고있다면 메인으로 쓰고자 하는 웹서버포트를 80으로 하고 IIS를 9999등의 포트번호로 지정해

    주는 것이 좋다. 이때 VMware의 Network settings에서 포트포워딩을 해줘야 하는데 이 블로그의

    리눅스에서 아파치 서버 설치하기 강좌 에서 찾아보면 포트포워딩 방법을 알수있다.

    필자는 80번포트를 이미 사용중이므로 9995번포트를 IIS에 부여하기로 했다. 설명 부분엔 웹사이트

    를 읽어들였을때에 뜨는 타이틀, IP주소는 설정하지 않으면 기본적으로 윈도우에서 부여된 IP주소를

    할당하여준다.

    사용자 삽입 이미지

    다음은 홈디렉토리 설정이다. 아파치서버의 기본 홈페이지를 읽어들일 디렉토리가 htdocs나

    public_html인것 처럼 IIS에서는 c:\inetpub\wwwroot 를 기본으로 한다 이곳에 index.html

    파일을 넣고 http://localhost 하면 apache서버를 실행시켰던 그것처럼 같은 결과를 볼수잇다.

    디렉터리 검색은 IIS서비스 실행시 디렉터리 경로들을 보여준다. index.html을 화면에 읽어들이는

    것이 아니라 탐색기에서 보듯이 파일로만 보여주게 된다. 여기서는 기본값인 미설정으로 설정한다.

    나머지 옵션들에 대해서는 기본값대로 사용해도 무방하다.

    사용자 삽입 이미지

    이번엔 문서 항목이다. 윗쪽은 기본으로 읽어들일 문서에 대해서 나와있는데 마음에 드는대로

    수정하면 되겠다. 필자는 좀 있다 index.htm을 불러들일것이라 그대로 놔두기로 하겠다.

    아래 메뉴는 문서 바닥글 사용 메뉴인데 이를 html파일로 지정해놓으면 웹페이지를 읽을때

    IIS가 이 내용을 페이지 바닥 부분에 보여주게 된다. 별 필요없는 기능이라 생각되어 생략하기로

    했다.

    모든 내용을 적용 혹은 확인버튼을 누른뒤..아무 내용이나 htm문서로 코딩하여..

    사용자 삽입 이미지

    아래와 같이 c:\inetpub\wwwroot 디렉토리에 저장한뒤.. 웹브라우저에서 IIS에서 할당했던

    IP를 입력하면 내부에서 이렇게 화면이 뜨고.. 외부에서 localhost:9995 로 내부접속은 이상없이

    되는것이 확인되었다.
    사용자 삽입 이미지

    그렇다면 이번엔 외부접속 확인을 해보겠다..
    사용자 삽입 이미지

    이렇게.. 외부접속까지 되는것을 확인했다.

    -----------------------------------------------------------------------------------------

    여기까지 IIS를 사용한 윈도우 에서의 웹서버 구동법에 대해 알아보았다. 구동만 한다고 다되는것도

    아니고. 요새 홈페이지들은 예전과 달리 php,mysql등이 연동되어 따로 Apache 서버나 IIS를

    PHP,Mysql과 연동시키는 방법보다는 편하게 웹서버를 구동해볼수 있는 Autoset이나 APMsetup

    같은 웹서버 매니지먼트 프로그램을 권장한다. 여기서 IIS에 대해서 알아 본이유는 윈도우에서

    꼭 Apache뿐이 아니라 IIS로도 서버환경을 구축할수 있다는것을 보여주기 위한 예를 들어본것

    뿐이다. IIS는 Apache의 가상디렉토리(Alias)에 해당하는 부분도 IIS에서 해줄수 있다. 어쨋거나

    여기까지 간단히 구축방법을 알아보았다.
    신고


    티스토리 툴바