* 본 게시물은 MissFlash가 "CentOS 리눅스 구축관리실무"를 참고로 유용한 단축키 및 명령어를 정리한 것입니다.
* 게시물이 지속적으로 업데이트 될 예정이니, 퍼가기 보다는 링크나 트랙백을 이용해 주세요 :)
* 게시물이 지속적으로 업데이트 될 예정이니, 퍼가기 보다는 링크나 트랙백을 이용해 주세요 :)
* MissFlash의 리눅스 유용 명령어 목록
- MySQL 환경설정(my.cnf)
- 환경설정 파일 : /etc/my.cnf
- 대부분의 경우, 기본 설정으로 운영 가능
- 가상호스트 설정
- 가상호스트 설정 파일 : extra/httpd-vhosts.conf
- 가상호스트 설정 예
- <VirtualHost *:80>
ServerName www.missflash.com
DocumentRoot /home/missflash.com/www
</VirtualHost>
<VirtualHost *:80>
ServerName blog.missflash.com
DocumentRoot /home/missflash.com/blog
</VirtualHost> - 위 설정에서 www.missflash.com으로 접속하면 /home/missflash.com/www 경로로, blog.missflash.com으로 접속하면 /home/missflash.com/blog 경로로 접속함
- phpMyAdmin : 웹에서 쉽게하는 MySQL 관리
- 설치 URL : http://www.phpmyadmin.net/
- 설치 방법
- ZendOptimizer : PHP 코드를 좀 더 빠른 속도로 실행하자!
- 설치 URL : http://www.zend.com
- 설치 방법
- 압축해제 : tar zxvf ZendOptimizer-3.2.6-linux-glibc21-i386
- 디렉토리 이동 : cd ZendOptimizer-3.2.6-linux-glibc21-i386
- install.sh 파일 실행 : ./install.sh
- mod_cband : 손쉬운 트래픽 관리!!!
- 주요기능
- 모든 사용자 대역폭 제한
- 다운로드 속도 제한
- 초당요청수 제한
- IP대역별 제한
- Support for virtualhosts
- Support for defined users
- 웹을 통한 제한결과 확인(/cband-status)
- 사용자별 제한결과 확인(/cband-status-me)
- 설치확인
- httpd.conf 파일에 아래 라인 추가 여부 확인 : LoadModule cband_module modules/mod_cband.so
- Apache 설치 경로/modules 디렉토리에 mod_cband.so 파일 있는지 확인
- 가상 호스트별 일일트래픽 제한
- <IfModule cband_module>
CBandDefaultExceededURL http://www.missflash.com
<Location /cband-status-me>
SetHandler cband-status-me 7
</Location>
</IfModule>
<VirtualHost *:80>
...
ServerName www.missflash.com
<Location /cband-status>
SetHandler cband-status 8
Order deny, allow
Allow from all
</Location>
CBandLimit 1Gi 9
CBandPeriod 1D 10
</VirtualHost>
- cband-status 항목
- Server uptime : 웹서버 작동 시간
- Virtualhosts : CBand를 설정한 가상호스트 목록
- Users : CBand를 설정한 사용자 목록
- Remote clients : 가상호스트(Cband-status-me)에 접속하고 있는 클라이언트 목록
- Server summary : 서버 요약 정보
- <IfModule cband_module></IfModule> 지시자
- CBandDefaultExceededURL [URL] : 제한을 초과했을 때 보여줄 URL 지정(없으면 503 에러페이지 출력)
- CBandDefaultExceededCode [HTTP에러코드] : 제한을 초과했을 때 보여줄 에러코드 설정
- CBandScoreFlushPeriod [요청수] : scoreboard 파일에 기록할 요청 수(mod_cband 성능에 영향)
- <CBandUser [사용자명]></CBandUser> : cband 가상 사용자 설정
- <CBandUser [사용자명]></CBandUser> 지시자
- CBandUserSpeed [최대속도] [요청수] [동시접속수] 13 : cband 가상 사용자의 최대속도, 요청수, 동시접속수 제한
- CBandUserLimit [전송량] : cband 가상 사용자의 전송량 제한
- CBandUserClassLimit [전송량] : cband 가상 사용자에서 정의한 class(IP범위)의 전송량 제한
- CBandUserExceededURL [URL] : cband 가상 사용자의 제한을 초과했을 때 보여줄 URL(없으면 503 에러페이지 출력)
- CBandUserExceededSpeed [최대속도 14] [요청수] [동시접속수] : cband 가상 사용자의 전송량을 초과했을 때 최대속도, 요청수, 동시접속수 제한
- CBandUserScoreboard : cband 가상 사용자의 scoreboard 파일 설정
- CBandUserPeriod [기간] : cband 가상 사용자의 용량 제한 기간 설정(이 기간이 지나면 과거 용량은 초기화됨)
- CBandUserPeriodSlice : cband 가상 사용자의 용량 측정 제한기간 설정(CBandUserPeriod가 4W이고, CBandUserPeriodSlice이 1W이면, 전체 제한용량의 1/4이 한 주당 제한 용량이 됨)
- <CBandClass [클래스명]></CBandClass> : IP대역을 지정하여 가상호스트에서 IP대역 제한 가능
- <VirtualHost></VirtualHost> 지시자
- CBandLimit [전송량] : 제한할 전송량 설정
- CBandExceededURL [URL] : 제한을 초과했을 때 보여줄 URL, 미지정시 503 에러 발생
- CBandExceededSpeed [최대속도 kbps] [요청수] [동시접속수] : 전송량을 초과했을 때 전송속도 제한 설정
- CBandScoreboard [파일이름] : 가상호스트의 scoreboard 파일 지정
- CBandPeriod [기간] : 전송량 제한기간 설정(기간 초과시 측정된 전송량 초기화)
- CBandPeriodSlice [기간] : 나눌 기간 명시
- CBandSpeed [최대속도 kbps] [요청수] [동시접속수] : 가상호스트 도메인의 최대속도, 요청수, 동시접속수 설정
- CBandRemoteSpeed [최대속도 kbps] [요청수] [동시접속수] : 가송호스트 접속자(IP)의 최대속도, 요청수, 동시접속수 설정
- CBandClassLimit [클래스이름] [전송량] : 정의한 클래스(IP범위)에 대해 제한할 전송량 설정
- CBandClassRemoteSpeed [IP대역] [최대속도 kbps] [요청수] [동시접속수] : 정의한 클래스(IP범위)에 대해 최대속도, 요청수, 동시접속수 설정
- XML 형태로 데이터 얻고 싶은 경우 : http://blog.missflash.com/cband-status?xml, http://blog.missflash.com/cband-status-me?xml과 같이 이용
- 특정시간에 트래픽 초기화하기
- mkdir /etc/cron.etc
- vi /etc/cron.etc/cband_reset.sh
- vi 편집기에서 아래 코드 작성
#!/bin/bash
# 가상호스트 전체 초기화
wget --http-user=missflash --http-passwd=123456 'http://blog.missflash.com/cband-status/?reset=all'
# CBandUser 전체 초기화
wget --http-user=missflash --http-passwd=123456 'http://blog.missflash.com/cband-status/?reset-user=all'
# 가상호스트 전체 초기화
wget --http-user=missflash --http-passwd=123456 'http://blog.missflash.com/cband-status/?reset=all'
# CBandUser 전체 초기화
wget --http-user=missflash --http-passwd=123456 'http://blog.missflash.com/cband-status/?reset-user=all'
- crontab -e
- 1 0 * * * su - root -c '/etc/cron.etc/cband_reset.sh'
- mod_evasive : DOS 공격 방어
- 설치 URL : http://www.zdziarski.com/projects/mod_evasive/
- 설치방법
- 모듈사용 중지하는 방법
- LoadModue을 주석처리 하거나 Count 값을 크게 잡아주면됨
- 인가된 IP주소 할당
- DOSWhitelist 127.0.0.1,DOSWhitelist 127.*.*.* 과 같이 사용
- webalizer : 웹 통계관리툴
- 설치URL : http://www.webalizer.com
- 설치방법
- 다운로드 : wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz
- 압축해제 : tar zxvf webalizer-2.01-10-src.tgz
- 디렉토리 생성
- mkdir -p /usr/local/server/webalizer/bin/webalizer
- mkdir -p /usr/local/server/webalizer/man/man1
- 설치
- ./configure --prefix=/usr/local/server/webalizer --with-language=korean
- make && make install
- 디렉토리 생성 : mkdir /usr/local/server/apache/htdocs/weblog
- 샘플파일 복사 : cp webalizer.conf.sample webalizer.conf
- 샘플파일 수정 : vi webalizer.conf
- LogFile /usr/local/server/apache/logs/access_log
- OutputDir /usr/local/server/apache/htdocs/weblog
- HistoryName blog.missflash.com
- HostName blog.missflash.com
- webalizer 실행 : /usr/local/server/webalizer/bin/webalizer/webalizer
- Cron 등록
- vi /etc/cron.etc/webalizer.sh
#!/bin/bash
/usr/local/server/webalizer/bin/webalizer/webalizer
/usr/local/server/webalizer/bin/webalizer/webalizer
- 가상호스트 적용방법
- 설치방법 > 샘플파일 수정 과 유사하게 진행
- Virtual Host의 CustomLog 파일 경로를 webalizer_missflash.conf 파일의 LogFile로 설정
- Virtual Host의 weblog 디렉토리 경로를 webalizer_missflash.conf 파일의 OutputDir로 설정
- 실행스크립트에 아래 소스 추가 : vi /etc/cron.etc/webalizer.sh
- /usr/local/server/webalizer/bin/webalizer/webalizer -c /etc/webalizer_missflash.conf
- mysqlcheck : MySQL 체크
- 실행방법 : mysqlcheck -Aao --auto-repair -u root -p비밀번호
- Cron 등록
- vi /etc/cron.daily/mysql_repair.sh
#!/bin/bash
mysqlcheck -Aao --auto-repair -u root -p비밀번호
mysqlcheck -Aao --auto-repair -u root -p비밀번호
- chmod 700 /etc/cron.daily/mysql_repair.sh
- PHP 확장모듈 동적 추가
- mysqli 모듈 추가 : /usr/local/src/php-5.2.1/ext/mysqli/modules/mysqli.so 파일 생성
- cd /usr/local/src/APM/php-5.2.1/ext/mysqli
- /usr/local/server/php/bin/phpize
- ./configure \
- > --with-php-config=/usr/local/server/php/bin/php-config \
- > --enable-mysqli
- make
- mysqli 모듈 복사
- mkdir /usr/local/server/php/modules
- cp modules/mysqli.so /usr/local/server/php/modules
- vi /usr/local/server/apache/conf/php.ini (굵게 표시한 행 추가)
extension_dir = /usr/local/server/php/modules
extension=mysqli.so;
extension=mysqli.so;
- Apache 재시작 : /etc/init.d/httpd restart
지루한 웹서버 환경설정 파트가 끝났습니다. 아직 남은 부분이 절반 가량 되는 것 같은데요... 다행인 것은 남은 것 중에서 생략가능한 파트가 많다는 사실이네요 ^^;
너무 지쳐서 다타고 재만 남은 느낌이잖아~
- 공식 사이트에서 최신 버전의 압축 파일을 다운로드 할 수 있습니다. [본문으로]
- 파일을 이용한 인증방식 사용, $cfg['Servers'][$i]['user']; = 'root';, $cfg['Servers'][$i]['password']; = ''; 과 같이 사용자명과 비밀번호 입력 [본문으로]
- .htaccess를 이용한 아파치 인증방식 사용 [본문으로]
- 쿠키를 이용한 인증방식 사용 [본문으로]
- 프롬프트 표시입니다. [본문으로]
- 빨간색은 기본 단위를 의미합니다. [본문으로]
- cband-status-me의 경우, 모든 호스트에서 접근해야 하기 때문에 전역으로 설정 [본문으로]
- 주 도메인이 있는 VirtualHost에만 SetHandler cband-status 추가 [본문으로]
- 트래픽 용량 제한 [본문으로]
- 트래픽 기간 제한 [본문으로]
- mf_user 사용자에 대한 제한 전역 설정 [본문으로]
- 위에서 입력한 mf_user 제한 전역 설정을 적용 [본문으로]
- kbps 단위입니다. [본문으로]
- kbps 단위입니다. [본문으로]
- Apache 1.3 버전에서 사용 [본문으로]
- Apache 2.x 버전에서 사용 [본문으로]
- 자식 해쉬테이블마다 탑레벨 노드 수 지정, 수치가 높을수록 퍼포먼스는 좋지만 테이블 스페이스에 메모리를 남기게 됨 [본문으로]
- 동일 페이지 또는 URL 요청수에 대한 카운트 수, 지정한 값 초과시 클라이언트 IP가 Blocking List에 추가되고 403 에러 전송 [본문으로]
- 지정한 값 초과시 클라이언트 IP가 Blocking List에 추가 [본문으로]
- 페이지 카운트 시발점, 1초를 의미 [본문으로]
- 사이트 카운트 시발점, 1초를 의미 [본문으로]
- 블러킹된 IP의 접속제한 시간, 30초를 의미 [본문으로]
- 5분마다 실행하는 설정입니다. [본문으로]
'Tip&Tech > Server' 카테고리의 다른 글
[팁] 웹서버 보안을 위한 툴, ModSecurity 적용하기! (0) | 2009.07.15 |
---|---|
[팁] MissFlash의 리눅스 유용 단축키, 명령어 모음(20) - 웹서버(APM) 설치 및 환경설정 (3) (2) | 2009.06.03 |
[팁] MissFlash의 리눅스 유용 단축키, 명령어 모음(19) - 웹서버(APM) 설치 및 환경설정 (2) (2) | 2009.06.01 |
[팁] MissFlash의 리눅스 유용 단축키, 명령어 모음(18) - 웹서버(APM) 설치 및 환경설정 (1) (3) | 2009.05.07 |
[팁] MissFlash의 리눅스 유용 단축키, 명령어 모음(17) - DHCP 서버와 IP 마스크레이드 (4) | 2009.05.05 |