ssl 보안 서버 구동시 암호묻지 않기

리눅스/APACHE|2015. 1. 16. 16:38
반응형

아래 파일을 열고 암호파일을 연결해주면 됩니다.

 

vi /usr/local/apache/conf/ssl.conf
SSLPassPhraseDialog  exec:/usr/local/apache/conf/ssl_password

ssl_password 파일은 ssl 구동시 입력할 패스워드를 미리 넣어놓은 파일입니다.

파일을 새로 생성하여 아래 내용을 넣어줍니다.


vi /usr/local/apache/conf/ssl_password
!/bin/sh
echo "ssl패스워드"

패스워드가 적혀있는 중요한 파일이므로 root 사용자만 접근할수 있도록 설정합니다.

(실행권한은 꼭 필요합니다.)

 

chmod 700 /usr/local/apache/conf/ssl_password

 

설정이 끝났습니다.

다음부터 아파치 시작시 암호를 묻는 창이 뜨지않습니다.

 

※ 참고

    httpd 1.x, httpd 2.0.x 에서 ssl 실행 명령 : /usr/local/apache/bin/apachectl startssl

    httpd 2.2.x 에서 ssl 실행 명령 : /usr/local/apache/bin/apachectl start

 

반응형

댓글()

서치엔진(robot.txt )을 피하는 방법

리눅스/APACHE|2015. 1. 16. 16:37
반응형

1

robot.txt 을 생성후 http://hbkr.net/robot.txt 위치에 업로드 한다.

# robot.txt 의 적당한 작성법 - 모든 robot의 /temp/ 디렉토리의 화일에 대해서 서치엔진으로부터 노출하지않음
User-agent: *
Disallow: /temp/


http://hbkr.net/temp/ 이후의 화일에 대해서는 노출을 하지 않는다.

# robot.txt - i hate robots
User-agent: *
Disallow: /


http://hbkr.net/ 이후의 화일에는 역시 노출하지 않음



2
meta tag 를 이용해서도 어느정도 노출을 줄이거나 늘릴수도 있다.

<META name=”robots” content=”noindex,nofollow”>


메타 테그에서 컨텐츠의 noindex는 모든 페이지에서 인덱스 하지 못하게 하는것이고 nofloow 는 메타테그가 들어간 웹페이지의 링크된 페이지를 인덱스 를 못하게 하는것

<meta name="keywords” content="키워드1; 키워드2;” />



자신의 키워드를 노출함으로서 그 페이지가 어떤 키워드를 가지고 있는지 알려주는것

대부분의 키워드 서치 엔진에서는 robot.txt 의 약속을 지킨다

robot.txt 에 대한 사이트: http://www.robotstxt.org
구굴을 피하는 방법 (via sirocco)


[출처] 컴퓨터로 놀기 | 소꿉친구 (http://cafe.naver.com/comil/1142)

반응형

댓글()

아파치 2.x 에서의 트래픽 제한

리눅스/APACHE|2015. 1. 16. 16:36
반응형

출처 : http://linux.tini4u.net/stories.php?story=07/01/12/8248075

글쓴이: 티니 (2007년 01월 12일 오전 12:10) 읽은수: 434

--------------------------------------------------------------------------------------
- 작성자 : 김혁중(티니) [sky(golbangi or at)tini4u.net]
- 작성일 : 2007-01-11
- 사이트 : 
http://linux.tini4u.net/
- 원제목 : 아파치 2.x 에서의 트래픽 제한
- 환 경 : CentOS 4.4, apache 2.2
- 키워드 : mod_cband
--------------------------------------------------------------------------------------
지난 강좌에서 아파치 1.x에서의 트래픽을 제한하는 모듈을 설명해 드렸습니다.
하지만 throttle 모듈은 아파치 1.x에서만 작동하기 때문에 아파치 2.x를 사용하시는 분들은
사용할 수 없다는 최대단점이 있습니다.
또한 최근엔 Legacy 딱지가 붙은 아파치 1.x보다는 최신버전인 아파치 2.x를 사용하시는 분들이
꽤 많기 때문에 그런 분들은 트래픽 제한을 하는데 있어 곤란함을 겪을 수 있습니다.
그렇지만 아파치 2.x에서도 트래픽을 제한할 수 있는 모듈이 있습니다. 바로 cband 모듈 인데요.
이 모듈은 throttle과 매우 흡사한 기능과 구조를 가지고 있지만, 트래픽을 제한하는 기능 말고도
또 한가지의 기능이 있습니다.
바로 대역폭을 제한하는 bandwidth 기능 입니다.
기존 아파치 1.x에서는 트래픽제한은 throttle 모듈을, 대역폭제한은 bandwidth 모듈을 이용했습니다.
그러나 아파치 2.x에서는 cband 모듈을 이용함으로써 두가지의 기능을 모두 사용할 수 있습니다.
또한 xml 형태로의 데이터까지 얻을 수 있기 때문에 관리자 입장에서 매우 반가울 수 밖에 없습니다.

1. mod_cband 설치 (최신버전: 
http://cband.linux.pl/)

[root@localhost]# wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz
[root@localhost]# tar xfz mod-cband-0.9.7.5.tgz
[root@localhost]# cd mod-cband-0.9.7.5
[root@localhost]# ./configure --with-apxs=/usr/sbin/apxs
[root@localhost]# make
[root@localhost]# make install



2. 아파치 환경설정에서의 cband 설정
cband 모듈 또한 throttle와 마찬가지로 3rd-party 모듈이기 때문에 아파치에서 설정을 합니다.

  1. [root@localhost]# vi /etc/httpd/conf/httpd.conf
  2. <IfModule mod_cband.c>
  3.     <Location /cband-status>
  4.         SetHandler cband-status
  5.         Order Deny,Allow
  6.         Deny from All
  7.         Allow from 127.0.0.1 100.100.100.100
  8.     </Location>
  9.     <Location /cband-me>
  10.         SetHandler cband-status-me
  11.         Order deny,allow
  12.         Deny from all
  13.         Allow from all
  14.     </Location>
  15. </IfModule>


※ SetHandler 설명
cband-status -> 관리자 페이지 입니다. 따라서 접근을 허용할 IP를 입력해주셔야 됩니다.
cband-me -> 사용자 페이지 입니다.

3. cband 적용
cband는 각 호스트에 대해서 여러가지 지시자를 사용하여 설정 할 수 있습니다.
아래는 여러가지 지시자중 하나인 가장 많이 사용되는 CbandLimit을 사용한 예제 입니다.

  1. ※ 각각의 호스트에 따로따로 설정해줄 때
  2. <VirtualHost 192.168.0.1>
  3.     ServerName foobar.com
  4.     ServerAlias www.foobar.com
  5.     DocumentRoot /home/foobar/public_html
  6.     ErrorLog logs/foobar-err
  7.     CustomLog logs/foobar-acc combined
  8.     CBandLimit 100Mi
  9.     CBandPeriod 1D
  10. </VirtualHost>


※ 위 설정은 1Day 동안 100M의 트래픽을 허용하겠다는 설정입니다.

  1. ※ 하나의 유저(foobar)가 여러개의 호스트를 사용하고 있는 경우 (트래픽 공유)
  2. <CBandUser foobar>
  3.     CBandUserLimit 100Mi
  4.     CBandUserPeriod 1D
  5. </CBandUser>
  6. <VirtualHost 192.168.0.1>
  7.     ServerName foobar.com
  8.     ServerAlias www.foobar.com
  9.     DocumentRoot /home/foobar/public_html
  10.     ErrorLog logs/foobar-err
  11.     CustomLog logs/foobar-acc combined
  12.     CBandUser foobar
  13. </VirtualHost>
  14. <VirtualHost 192.168.0.1>
  15.     ServerName foobar2.com
  16.     ServerAlias www.foobar2.com
  17.     DocumentRoot /home/foobar2/public_html
  18.     ErrorLog logs/foobar2-err
  19.     CustomLog logs/foobar2-acc combined
  20.     CBandUser foobar
  21. </VirtualHost>


※ 위 설정은 foobar 유저에게 1Day 동안 100M의 트래픽을 허용하겠다는 설정이며,
foobar.com과 foobar2.com에서 foobar 유저의 트래픽을 공유해서 사용하겠다는 것입니다.

4. cband 단위
- 전송속도 단위

kbps, Mbps, Gbps - bits per second, 의미: 1024, 1024*1024, 1024*1024*1024 bps
kb/s, Mb/s, Gb/s - bytes per second, 의미: 1024, 1024*1024, 1024*1024*1024 b/s
기본값 : kbps


- 트래픽 제한 단위

K, M, G - bytes, 의미: 1000, 1000*1000, 1000*1000*1000 bytes
Ki, Mi, Gi - bytes, 의미: 1024, 1024*1024, 1024*1024*1024 bytes
기본값: K


- 시간 단위

S, M, H, D, W - 초, 분, 시간, 일, 주. 의미: 1, 60, 3600, 86400, 604800 Seconds
기본값: S



5. cband 지시자

이름: CBandDefaultExceededURL
설명: 제한을 초과했을때 보여줄 URL
문맥: Server config
문법: CBandDefaultExceededURL [URL]
예제: CBandDefaultExceededURL 
http://foobar.com/503.html


이름: CBandDefaultExceededCode
설명: 제한을 초과했을시 보여줄 에러 코드
문맥: Server config
문법: CBandDefaultExceededCode [HTTP_CODE]
예제: CBandDefaultExceededCode 509


이름: CBandScoreFlushPeriod
설명: scoreboard 파일에 기록할 요청수를 정하나, cband 퍼포먼스에 영향을 미칩니다.
기본값: 1
문맥: Server config
문법: CBandScoreFlushPeriod [요청수]
예제: CBandScoreFlushPeriod 100
    100번의 요청이 들어오면 scoreboard 파일에 한번 기록합니다.


이름: CBandSpeed
설명: 가상호스트 도메인의 최대 속도, 요청수, 접속수 설정
문맥: <Virtualhost>
문법: CBandSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandSpeed 1024 10 30
    호스트에 대해 1024kbps 전송속도로 제한하며, 초당 10개의 요청을 처리하고,
    동시 접속을 30개로 제한합니다.


이름: CBandRemoteSpeed
설명: 호스트 접속자의 최대속도, 요청수, 접속수 제한
문맥: <Virtualhost>
문법: CBandRemoteSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandRemoteSpeed 20kb/s 3 3
    호스트 접속자에 대해 1024kbps 전송속도로 제한하며,
    초당 10개의 요청을 처리하고, 동시 접속을 30개로 제한합니다.


이름: CBandClassRemoteSpeed
설명: IP class의 최대속도, 요청수, 접속수 제한
문맥: <Virtualhost>
문법: CBandClassRemoteSpeed [class_name] [kbps] [rps]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제:
<CBandClass googlebot_class>
  CBandClassDst 66.249.64/24
  CBandClassDst 66.249.65/24
  CBandClassDst 66.249.79/24
</CBandClass>
CBandClassRemoteSpeed googlebot_class 20kb/s 2 3
googlebot_class 클래스에 대해 20kb/s 전송속도로 제한하며, 
초당 10개의 요청을 처리하고, 동시 접속을 30개로 제한합니다.


이름: CBandRandomPulse
설명: 속도 제한을 위해서 임의의 파형을 생성한 다음 처리하는 방법입니다.
문맥: Global
문법: CBandRandomPulse [On/Off]
예제: CBandRandomPulse On


이름: CBandLimit
설명: 제한할 전송량을 설정한다.
문맥: <Virtualhost>
문법: CBandLimit [limit]
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)
예제: CBandLimit 10M
    전송량을 10M(10*1000*1000bytes)로 제한한다.
    CBandLimit 10Mi
    전송량을 10M(10*1024*1024bytes)로 제한한다.


이름: CBandClassLimit
설명: IP class에 대해 제한할 전송량 설정
문맥: <Virtualhost>
문법: CBandClassLimit [class_name limit]
    class_name - 클래스 이름
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)


이름: CBandExceededURL
설명: 제한을 초과했을때 보여줄 URL
문맥: <Virtualhost>
문법: CBandExceededURL [URL]
예제: CBandExceededURL 
http://foobar.com/503.html


이름 : CBandExceededSpeed
설명: 전송량을 초과했을때의 전송속도 제한 설정
문맥: <Virtualhost>
문법: CBandExceededSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수


이름: CBandScoreboard
설명: 가상호스트의 scoreboard 파일 지정
문맥: <Virtualhost>
문법: CBandScoreboard [path]


이름: CBandPeriod
설명: 제한기간
문맥: <Virtualhost>
문법: CBandPeriod [period]
    period - 사용단위: S(초), M(분), H(시간), D(일), W(주)
예제: CBandPeriod 1D


이름 : CBandPeriodSlice
설명: 기간을 나눌 기간 명시
기본값: slice_len = limit
문법: CBandPeriodSlice [slice_length]
예제: CBandLimit 100G
    CBandPeriod 4W
    CBandPeriodSlice 1W
지정된 제한값을 1주일 단위로 나누어 사용 합니다.
위 설정을 해석하면 4주는 1주일 단위로 나누며, 용량은 100G/4주=25G로 사용 합니다.


이름: <CBandUser>
설명: 새로운 cband 가상 사용자 설정
문맥: Server config
문법: <CBandUser user_name>


이름: CBandUserSpeed
설명: cband 가상 사용자의 속도, 요청수, 동시 접속수 제한
문맥: <CBandUser>
문법: CBandUserSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수
예제: CBandUserSpeed 100kb/s 10 5


이름: CBandUserLimit
설명: cband 가상 사용자의 전송 용량 제한
문맥: <CBandUser>
문법: CBandUserLimit [limit]
    limit - 사용용량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)
예제: CBandUserLimit 10M
    전송량을 10M(10*1000*1000bytes)로 제한한다.
    CBandUserLimit 10Mi
    전송량을 10M(10*1024*1024bytes)로 제한한다.


이름: CBandUserClassLimit
설명: cband 가상 사용자의 IP class에 대해 제한할 전송량 설정
문맥: <CBandUser>
문법: CBandUserClassLimit [class_name] [limit]
    class_name - 클래스 이름
    limit - 전송량, 사용단위: K(kilo), M(mega), G(giga), Ki(kibi), Mi(mebi), Gi(gibi)


이름 : CBandUserExceededURL
설명: cband 가상 사용자의 제한을 초과했을때 보여줄 URL
문맥: <CBandUser>
문법: CBandUserExceededURL URL
예제: CBandDefaultExceededURL 
http://foobar.com/503.html


이름: CBandUserExceededSpeed
설명: cband 가상 사용자의 전송량을 초과했을때의 전송속도 제한 설정
문맥: <CBandUser>
문법: CBandUserExceededSpeed [kbps] [rps] [max_conn]
    kbps - 초당 최대 전송속도
    rps - 초당 최대 요청수
    max_conn - 최대 동시 접속수


이름: CBandUserScoreboard
설명: cband 가상 사용자의 scoreboard 파일 지정
문맥: <CBandUser>
문법: CBandUserScoreboard [path]


이름: CBandUserPeriod
설명: cband 가상 사용자의 제한기간
문맥: <CBandUser>
문법: CBandUserPeriod [period]
    period - 사용단위: S(초), M(분), H(시간), D(일), W(주)
예제: CBandPeriod 1D


이름: CBandUserPeriodSlice
설명: cband 가상 사용자의 기간을 나눌 기간 명시
기본값: slice_len = limit
문맥: <CBandUser>
문법: CBandUserPeriodSlice [slice_length]
예제: CBandLimit 100G
    CBandPeriod 4W
    CBandPeriodSlice 1W
지정된 제한값을 1주일 단위로 나누어 사용 합니다.
위 설정을 해석하면 4주는 1주일 단위로 나누며, 용량은 100G/4주=25G로 사용 합니다.



6. 통계화면 보기
관리자모드 - 
http://foobar.com/cband-status
관리자모드(xml) - http://foobar.com/cband-status?xml
사용자모드 - http://foobar.com/cband-me
사용자모드(xml) - http://foobar.com/cband-me?xml

7. 통계화면에 아파치 인증 걸기
throttle 강좌에서도 말씀드렸지만 통계화면의 제한은 IP의 형태로 제한을 하는게 정설입니다.
그렇지만 IP가 자주 변경되는 분들은 매번 IP를 변경해주는것도 하나의 일이 될 수 있습니다.
따라서 이런 경우에는 아파치 인증을 걸어서 사용하시면 편리할 것입니다.

  1. [root@localhost]# vi /etc/httpd/conf/httpd.conf
  2. <IfModule mod_cband.c>
  3.     <Location /cband-status>
  4.         SetHandler cband-status
  5.         AuthName "트래픽관리 페이지"
  6.         AuthType Basic
  7.         AuthUserFile /home/foobar/.htpasswd
  8.         require valid-user
  9.     </Location>
  10.     <Location /cband-me>
  11.         SetHandler cband-status-me
  12.         Order deny,allow
  13.         Deny from all
  14.         Allow from all
  15.     </Location>
  16. </IfModule>
  17. [root@localhost]# htpasswd -c /home/foobar/.htpasswd ID


반응형

댓글()

아파치 1.x 에서의 트래픽 제한

리눅스/APACHE|2015. 1. 16. 16:36
반응형

출처 : http://linux.tini4u.net/stories.php?story=07/01/10/5993233

--------------------------------------------------------------------------------------
- 작성자 : 김혁중(티니) [sky(golbangi or at)tini4u.net]
- 작성일 : 2007-01-10 
- 사이트 : http://linux.tini4u.net/
- 원제목 : 아파치 1.x 에서의 트래픽 제한
- 환 경 : CentOS 4.4, apache 1.3
- 키워드 : mod_throttle
--------------------------------------------------------------------------------------
이번 강좌는 아파치 1.x에서의 트래픽을 제한하는 모듈인 throttle에 대해서 다뤄보겠습니다.
이미 많은 분들이 아시겠지만 throttle은 각 호스트에 대한 트래픽을 다양하게 제한할 수 있는
모듈입니다.

throttle 모듈은 아파치 3rd party(Third-party) 모듈 이기 때문에, 아파치의 설치 방법에 따라서
그 설치법 또한 달라지게 되어 있습니다.
이곳 LTN의 웹서버 게시판에 보시면 아파치는 DSO와 Static 의 방식으로 운영될 수 있다는것을
확인하실 수 있을 것입니다.

1. mod_throttle 다운로드
이 강좌를 쓰는 시점인 2007년 01월 10일에는 현재 공식 개발사의 홈페이지를 가보게 되면
더이상 배포를 하지 않고 close 되었다는 문구를 보실 수 있습니다.
따라서 필자가 한글화 한 throttle 모듈의 소스를 필자의 개인 패키지미러에 올려두도록 하겠습니다.
테이블로 깔끔하게 정리해놨으니 기존의 throttle 모듈보다 보기 편하실 겁니다.

[root@localhost]# wget http://pkg.tini4u.net/www/3rd-party/mod_throttle.tar.gz
[root@localhost]# tar xfz mod_throttle.tar.gz



2. 아파치를 Static 으로 사용할 경우
아파치를 정적으로 빌드하여 운영할 경우에는 필요한 모듈을 미리 메모리에 적재해야 되기 때문에
아파치를 설치하기 전에 throttle 모듈도 같이 빌드를 해줘야 합니다.
빌드하는 방법은 아파치의 --add-module 옵션을 이용하시면 됩니다.

[root@localhost]# cd apache-1.3.37
[root@localhost]# ./configure --add-module=../mod_throttle/mod_throttle.c



3. 아파치를 DSO 로 사용할 경우
아파치를 동적으로 빌드하여 운영할 경우에는 이미 so 모듈이 enabled 되어 있을 것입니다.
확인 방법은 httpd -l 을 했을 경우에 mod_so.c 가 출력이 되면 됩니다.
만약 출력이 되지 않는 경우 so 모듈을 따로 올려주셔야 됩니다.

[root@localhost]# cd mod_throttle
[root@localhost]# make install


아파치를 DSO로 운영하면 apxs를 사용할 수 있기 때문에 설치 방법또한 간단합니다.
만약에 make install로 설치가 안되시는 분은 직접 apxs를 이용해서 설치할 수도 있습니다.

[root@localhost]# /usr/sbin/apxs -aic mod_throttle.c



4. 아파치 환경설정에서의 throttle 설정
앞서 말했듯이 throttle은 아파치의 3rd-party 모듈이기 때문에 아파치 위에서 작동을 합니다.
따라서 설정 또한 아파치 환경설정 파일인 httpd.conf에서 해주게 됩니다.

  1. [root@localhost]# vi /etc/httpd/conf/httpd.conf
  2. <IfModule mod_throttle.c>
  3. ThrottlePolicy none
  4.     <Location /throttle-status>
  5.         SetHandler throttle-status
  6.         Order deny,allow
  7.         Deny from all
  8.         Allow from 127.0.0.1 100.100.100.100
  9.     </Location>
  10.     <Location /throttle-me>
  11.         SetHandler throttle-me
  12.         Order deny,allow
  13.         Deny from all
  14.         Allow from all
  15.     </Location>
  16.     <Location /~*/throttle-me>
  17.         SetHandler throttle-me
  18.         Order deny,allow
  19.         Deny from all
  20.         Allow from all
  21.     </Location>
  22. </IfModule>


※ SetHandler 설명
throttle-status -> 관리자 페이지 입니다. 따라서 접근을 허용할 IP를 입력해주셔야 됩니다.
throttle-me -> 사용자 페이지 입니다.

5. throttle 적용
throttle은 각 호스트에 대해서 여러가지 지시자를 사용하여 설정 할 수 있습니다.
아래는 여러가지 지시자중 하나인 가장 많이 사용되는 ThrottlePolicy 를 사용한 예제 입니다.
여러가지 지시자와 정책에 대한 설명은 다음 섹션에서 설명하도록 하겠습니다.

  1. <VirtualHost 192.168.0.1>
  2.     ServerName foobar.com
  3.     ServerAlias www.foobar.com
  4.     DocumentRoot /home/foobar/public_html
  5.     ErrorLog logs/foobar-err
  6.     CustomLog logs/foobar-acc combined
  7.     ThrottlePolicy Volume 100M 1d
  8. </VirtualHost>


※ 위 설정은 1day 동안 100M의 트래픽을 허용하겠다는 설정 입니다.

6. throttle 정책

  1. None: 아무런 정책이 없음. 주로 모니터링 용도로 사용
  2. Concurrent: 동시 접속수 제한. ThrottleClientIP, ThrottleRemoteUser와 같이 사용가능
  3. Document [제한수] [기간]: Request와 비슷하지만 html 문서를 카운트 시킬 수 있음
  4. Idle [시간] [기간]: 쉬는 시간.
  5. Random [NN%] [기간]: 0이면 모두 거절, 100이면 모두 허가, 그 외에는 랜덤하게 허가됨.
  6. Request [제한수] [기간]: 받아드릴 요청 수
  7. Speed [제한용량] [기간]: Volume과 비슷하지만 요청을 거절하지는 않고 연기(Delay) 시킴
  8. Volume [제한용량] [기간]: 해당 기간동안 제한시키며, 가장 많이 사용됩니다.



7. throttle 지시자

이름: ThrottleClientIP
설명: 접속한 IP를 설정해주면 됩니다.
문법: ThrottleClientIP [보여줄 IP수] [정책] [제한] [기간]


이름: ThrottleContentType
설명: 통계를 출력할 형태를 지정하면 되며, text/html, text/plain 중에 하나를 넣으면 됩니다.
문법: ThrottleContentType [문자열]


이름: ThrottleIndicator
설명: 결과에 따른 컬러를 조정할 수 있는 퍼센테이지와 컬러를 지정합니다.
문법: ThrottleIndicator [컬러] [NN%]
예제: ThrottleIndicator green 60
    ThrottleIndicator yellow 80
    ThrottleIndicator red 90


이름: ThrottleLockFile
이름: ThrottleRuntimeFile
설명: throttle에서 사용하는 파일을 강제로 지정해줄 수 있습니다.
문법: ThrottleLockFile [파일명]
문법: ThrottleRuntimeFile [파일명]


이름: ThrottleMaxDelay
설명: throttle의 최대 Delay 시간을 정합니다. 기본은 60초이며, 0은 제한하지 않겠다는 뜻입니다.
문법: ThrottleMaxDelay [N/sec]
예제: ThrottleMaxDelay 60


이름: ThrottlePolicy
설명: 일반적으로 정책은 Volume과 Request를 사용합니다.
문법: ThrottlePolicy [정책] [제한] [기간]
예제: ThrottlePolicy Volume 100M 1d


이름: ThrottleRefresh
설명: throttle 통계화면의 리로드 시간을 정합니다.
문법: ThrottleRefresh [N/sec]
예제: ThrottleRefresh 60


이름: ThrottleRemoteUser
설명: 접속자당 제한을 하는 지시자 입니다.
문법: ThrottleRemoteUser [크기] [정책] [제한] [기간]


이름: ThrottleUser
설명: 로컬 사용자 제한을 등록합니다. 분산된 호스트를 관리할 때 사용합니다.
문법: ThrottleUser [사용자] [정책] [제한] [기간]



8. 통계화면 보기
관리자모드 - 
http://foobar.com/throttle-status
사용자모드 - http://foobar.com/throttle-me
      - http://foobar.com/~foo/throttle-me

9. 통계화면에 아파치 인증 걸기
보통 통계화면의 제한은 IP의 형태로 제한을 하는게 정설입니다.
그렇지만 IP가 자주 변경되는 분들은 매번 IP를 변경해주는것도 하나의 일이 될 수 있습니다.
따라서 이런 경우에는 아파치 인증을 걸어서 사용하시면 편리할 것입니다.

  1. [root@localhost]# vi /etc/httpd/conf/httpd.conf
  2. <IfModule mod_throttle.c>
  3. ThrottlePolicy none
  4.     <Location /throttle-status>
  5.         SetHandler throttle-status
  6.         AuthName "트래픽관리 페이지"
  7.         AuthType Basic
  8.         AuthUserFile /home/foobar/.htpasswd
  9.         require valid-user
  10.     </Location>
  11.     <Location /throttle-me>
  12.         SetHandler throttle-me
  13.         Order deny,allow
  14.         Deny from all
  15.         Allow from all
  16.     </Location>
  17.     <Location /~*/throttle-me>
  18.         SetHandler throttle-me
  19.         Order deny,allow
  20.         Deny from all
  21.         Allow from all
  22.     </Location>
  23. </IfModule>
  24. [root@localhost]# htpasswd -c /home/foobar/.htpasswd ID


반응형

댓글()

yum 으로 APM 설치하기

리눅스/APACHE|2015. 1. 16. 16:36
반응형

YUM을 이용한 APM 설치의 장점

- CentOS측의 권고 사항
- update의 편의성, 의존성과 관련된 패키지 설치가 용이하며 유지관리에도 많은 장점을 제공

YUM을 이용한 APM 설치의 단점

Source 컴파일에 의한 APM설치시에는 원하는 위치에 파일을 설치 할 수 있었지만 
YUM을 이용한 APM 설치시에는 기본 위치가 정해져 있다. 웹에서 그림파일을 지원하기 위한 패키지 모음

yum -y install zlib zlib-devel freetype freetype-devel freetype-utils gd gd-devel libjpeg libjped-devel libpng libpng-devel php-gd


yum은 콘솔에서 사용할 수 있는 리눅스 패키지 자동 업데이트 툴입니다. 이걸 이용하면 간편하게 패키지 업데이트들을 할수가 있죠. 단.. 컴파일 해서 설치한 경우는 제외입니다.


저도 이전에는 기본패키지만 설치하고 필요한 것들만 하나씩 컴파일 해서 사용했었는데 유지/보수를 생각한다면 yum을 이용한 패키지 관리를 추천합니다.

yum에는 이외에도 설정파일 및 저장소에 대한 정보 등등 다양한 기능+셋팅이 있겠지만 여기서는 일반유저들(저를 포함한)을 위한 기본적인 사용법에 대해서만 체크하도록 하겠습니다.

                                                          아래는 간단한 방법입니다. 

1. apache 설치(httpd) : yum install httpd
2. mysql 설치 : yum install mysql
3. php 설치 : yum install php
4. php-mysql 연동 설치 : yum install php-mysql


                                                           다음은 상세방법입니다.

라이브러리를 설치 : yum -y install zlib libpng freetype gd libxml lib iconv 

APM 관련 프로그램을 설치
yum -y install 
httpd
mysql-server 
mysql 
php 
php-devel 
php-gd 
php-mbstring 
php-mysql 
php-pear 
php-pecl-mailparse 

1. Apache 설치
  
1) 설치 여부 체크 : yum list installed | grep http
2) apache port가 떠있는지 확인 : netstat -lntp
3) Apache 실행 :  /usr/sbin/apachectl start
4) 데몬이 정상적 실행확인 :  netstat -lntp
        
2. Mysql 설치
 
1) 설치 여부 확인 : yum list installed | grep mysql
2) mysql client 설치 : yum install mysql
3) mysql server 설치 : yum install mysql-server
4) server 구동 : /etc/rc.d/init.d/mysqld start
5) password 변경 : /usr/bin/mysqladmin -u root password 'new password'
    
3. PHP 설치

1) php 설치여부 확인 : which php ,yum list installed | grep php   설치 여부 확인
2) php 설치 : yum install php
3) 그외 필요요소들 설치
    yum -y install php-devel php-gd php-mbstring php-pear php-pecl-mailparse php-mysql mod_ssl
4) 정상적인 설치 여부 확인 :  which php
5) 아파치의 php 설정에 다음줄을 추가해준다.
      vi /etc/httpd/conf.d/php.conf

보안 문제로 관리자 아이디로는 embed를 볼 수 없습니다. 확인하려면 다른 아이디로 접속하세요


      AddHandler php5-script .php
      AddType text/html .php
      AddType application/x-httpd-php .php .html .htm .inc  <- 추가
6) 아파치 재실행
    /usr/sbin/apachectl restart

반응형

댓글()

[ERROR] libphp5.so: cannot restore segment prot after reloc: Permission denied

리눅스/APACHE|2015. 1. 16. 16:35
반응형

httpd: Syntax error on line 105 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

아파치 실행시 위와 같은 에러가 출력되면서 구동이 되지 않을때 해결 방법


[첫번째 방법]
# vi /etc/sysconfig/selinux
내용중 SELINUX=disabled


* 바로 적용을 위해 setenforce 0 명령 수행



[두번째 방법]
# chcon -t texrel_shlib_t /usr/local/apache/modules/*.so

반응형

댓글()

apache - tomcat 커넥터 다운로드 받는곳

리눅스/APACHE|2015. 1. 16. 16:34
반응형

http://archive.apache.org/dist/tomcat/tomcat-connectors/

반응형

댓글()

톰캣 도메인 추가하기

리눅스/APACHE|2015. 1. 16. 16:34
반응형

1. apache 의 virtualhost 부분 추가 (생략)

2. # vi /usr/local/tomcat/conf/server.xml

하단 <Host> </Host> 부분 바로 뒤에 아래 내용을 추가해줍니다.

       <Host name="example.com" appBase="/home/sysdocu/public_html"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
       <Context path="" docBase="/home/sysdocu/public_html" crossContext="true" debug="0" reloadable="true"/>
       <Alias>www.example.com</Alias>
      </Host>


※ 아파치와 톰캣이 연동된 경우 94번째줄의 Connector port="8080" 은 "80"으로 변경할 필요 없습니다.

3. /usr/local/tomcat/webapps/ROOT/WEB-INF 를 추가할 도메인의 홈디렉토리로 복사합니다.
    # cp -arp /usr/local/tomcat/webapps/ROOT/WEB-INF /home/sysdocu/public_html

4. 톰캣 재시작을 해줍니다.
    # shutdown.sh
    # startup.sh
 

반응형

댓글()

[warn] _default_ VirtualHost overlap on port 80, the first has precedence

리눅스/APACHE|2015. 1. 16. 16:34
반응형

NameVirtualHost 이 활성화 되지 않은 상태에서
VirtualHost *:80 가 여러개 등록되었을경우 나타나는 에러메세지입니다.

httpd.conf 파일에서

NameVirtualHost *:80 부분이 활성화 되었는지 확인해보고 주석처리 되어있다면 주석해제를 합니다.

등록한 VirtualHost 항목과 NameVirtualHost항목을 동일하게 맞추어줍니다.

예1) NameVirtualHost *
        <VirtualHost *>
        <VirtualHost *>

예2) NameVirtualHost *:80
        <VirtualHost *:80>
        <VirtualHost *:80>

반응형

댓글()

apache 2.2.x 설치중 libexpat.so 에러

리눅스/APACHE|2015. 1. 16. 16:33
반응형

에러 메세지
/usr/lib/libexpat.so: could not read symbols: File in wrong format


해결방안
./configure --with-expat=builtin 추가

반응형

댓글()

Warning: Cannot modify header information - headers already sent by

리눅스/APACHE|2015. 1. 16. 16:32
반응형

소스 에러 출력 메세지가 아래와 같을때


Warning: Cannot modify header information - headers already sent by (output started at /home/yourdomain/public_html/test.php:3) 



소스 상단에 아래 코드를 삽입해봅니다.


ob_start();



반응형

댓글()