'apache'에 해당되는 글 2건

  1. 2010.03.05 [Apache] RewriteRule
  2. 2009.10.07 [Apache] httpd.conf
dev2010.03.05 09:00


1-1) rewrite 설정
rewrite 모듈 사용하기 위한 apache 컴파일 옵션 : --enable-rewrite
Configure 실행시에 --enable-rewrite 만 추가하면 apache 에서 rewrite 모듈을 사용할수 있게 됨..
> ./configure prefix=/usr/local/apache2 --enable-rewrite
> make
> make install

 

1-2) rewirte 설정 범위
: Server Config, Virtual Host, Directory, .htaccess 에 설정가능
(apache 서버 전체의 Global 설정과 특정 가상호스트에만 적용할수 있고 특정 디렉토리에만 적용시킬수도 있다.)

 

2) rewrite 모듈 지시자


RewriteEngine

: RewriteEngine On|Off
RewriteEngine 을 사용할지 여부 (기본설정은 Off) / 현재 실행중인 모든 RewriteRule 을 비활성화 하려면 RewriteRule 라인을 주석처리 하는것보다 RewriteEngine Off 로 설정!


RewriteLog

: RewriteLog FILE-PATH
RewriteEngine 의 로그를 기록할 파일 지정 (RewriteLog 지시자는 반드시 RewriteLog Level 지시자와 함께 사용!)


RewriteLogLevel

: RewriteLogLevel LEVEL
로그파일에 기록할 로그들에 대해 얼마나 자세한 내용을 로그로 남길가에 대한 설정 지시자 (0~9 의 레벨, 0은 기록하지 않음, Level 이 높을수록 자세한 로그 기록)


RewriteCond

: RewriteCond TestString CondPattern
RewriteCond 다음에 오는 RewriteRule 은 RewriteCond 에서 설정한 패턴과 일치해야만 RewriteRule 들을 실행!


RewriteRule

: RewriteRule Pattern Substituition
Rewrite 모듈의 실질적인 Rewrite 규칙들을 적용하는 지시자 / Pattern(Input URL) 을 Susbtitution(Return URL) 으로 변경하기 위한 변경처리
Pattetn(Input URL) 에는 Perl 정규표현식을 사용

출저 : http://www.superuser.co.kr/apache/rewrite_Module/Apache_rewrite_Module.htm

Posted by 김과장 epkim
dev2009.10.07 13:36


ServerRoot "/usr/local/httpd"
: 아파치 서버가 설치된 디렉토리 지정

Listen 80

: 아파치 서버가 사용할 포트번호 지정

LoadModule php5_module        modules/libphp5.so
: DSO 방식으로 만들어진 모듈의 기능을 사용하기 위해서는 그 기능에 관련된 지시자를 사용하기에 앞서 알맞게 `LoadModule' 지시자로 모듈을 지시해주어야 한다. 이것은php의 모듈을 불러온다는 의미이다 
 
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
 User nobody
 Group nobody
</IfModule>
</IfModule>
: 아파치 서버가 웹 요청을 받았을때 유저 nobody 그룹nobody 의 권한으로 실행한다는 의미이다. root로 설정해서는 절대 안된다

ServerAdmin you@example.com
: 아파치 서버가 구동되면서 생긴 각종 로그파일을 메일로 보낼수 있게 지정하는 곳.

ServerName www.example.com:80
: 아파치 서버에 접속하는 클라이언트에게 보여지는 호스트 이름을 지정하는곳이다.

DocumentRoot "/usr/local/httpd/htdocs"
: 웹에서 접속했을때 보여질 웹 문서들이 저장되는공간이다.

<Directory />
 Options FollowSymLinks
 AllowOverride None
 Order deny,allow
 Deny from all
</Directory>

: 디렉토리 에서 지정하는값을 실행한다는 의미 여기는 디폴트 값 None 모든것을 허용하지 않는다
All 모든것을 허용, 단 MultiViews, IncludesNOEXEC,SymlinksIFOwnerMathch 는 제외
Indexes index.html과 같은 인덱스 파일이 없을때 디렉토리 리스팅이된다.
Includes SSI를 사용허가, FollowSymlinks 심볼릭 링크를 허용

<Directory "/usr/local/httpd/htdocs">
 AllowOverride None      
 Options
 Order allow,deny
 Allow from all
</Directory>

: /usr/local/httpd/htdocs 의 디렉토리에 허용될 값을 설정하는것. 기본 모두 허용이란 말이다

<IfModule dir_module>
 DirectoryIndex index.html
</IfModule>
: 디렉토리에 처음 나올 웹페이지를 지정 파일명을 안지정하더라고 기본으로 index.html을 지정한다

<FilesMatch "^\.ht">
 Order allow,deny
 Deny from all
 Satisfy All
</FilesMatch>

: /usr/local/httpd/conf/extra/httpd-default.conf에 AccessFileName .htaccess 를 설정하였을때 ".htaccess"의 내용을 볼수 없게 사용하는 옵션이다

ErrorLog "logs/error_log"
: 아파치의 웹서버의 에레메세지 로그를 기록할 파일을 지정한다

LogLevel warn
: 위에서 설정한 에러 메세지를 얼마나 자세하게 기록할건지를 설정한다
debug > info > notice > warn > error > crit > alert > emerg
하위로 갈수록 자잘것부터 자주 위로 갈수록 아주 긴급한것을 제외하곤 기록하지 않는다는것

<IfModule log_config_module>
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 LogFormat "%h %l %u %t \"%r\" %>s %b" common
</IFModule>
: 위의 모듈은 클라이언트의 요청을 로그에 자유롭게 기록한다. 자신이 원하는 형식으로 로그를 기록할 수 있고, 파일이나 외부 프로그램에 직접 로그를 보낼 수도 있다. 조건적 로그를 사용하면 요청의 성격에 따라 요청을 로그에 추가하거나 제외할 수 있다.
이 모듈은 세가지 지시어를 제공한다. TransferLog는 로그파일을 만들고, LogFormat은 원하는 형식을 정하고, CustomLog는 한번에 로그파일과 형식을 모두 지정한다. TransferLog와 CustomLog지시어를 여러번 사용하면 요청을 여러 파일에 기록할 수 있다
LogFormat과 CustomLog 지시어의 형식 아규먼트는 문자열이다. 이 문자열에 따라 요청을 로그파일에 기록한다. 문자열에는 로그파일에 그대로 복사되는 문자와 행바꿈과 탭을 나타내는 C의 "\n"과 "\t" 제어문자를 사용할 수 있다. 로그파일에 따옴표나 백슬래쉬를 쓰려면 앞에 반드시 백슬래쉬를 적어줘야 한다.
요청의 특징은 형식 문자열에 "%" 지시어를 사용하여 기록한다.

<IfModule logio_module>
 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
: 이 모듈은 요청당 입출력 바이트수를 기록한다. 숫자는 네트웍에서 실제로 주고받은 바이트수를 나타내며, 요청과 응답의 헤더와 내용을 포함한다. 개수는 입력의 경우 SSL/TLS 이전에, 출력의 경우 SSL/TLS 이후에 세기때문에 암호화의 결과도 올바로 반영한다.
이 모듈을 쓰기위에선 바로위의 log_config_module 이 필요하다.
이 모듈은 두가지 새로운 로그지시어를 추가한다. 요청자체의 특성은 형식문자열에 "%" 지시어를 사용하여 기록한다.

CustomLog "logs/access_log" common
: 위에서 정한 로그형식 "common"형식으로 로그를 남긴다

<IfModule alias_module>

 ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
</IfModule>
: URL을 특정 파일시스템 장소로 대응하고 대상이 CGI스크립트라고 알린다
사용법 ScriptAlias URL-path file-path\directory-path   

<IfModule cgid_module>
</IfModule>

<Directory "/usr/local/httpd/cgi-bin">
 AllowOverride None
 Options None
 Order allow,deny
 Allow from all   <-deny 로 해도 상관없음 잘 사용하지 않음
</Directory>
: /usr/local/httpd/cgi-bin 디렉토리에 요청이 왔을때 허용하는 값을지정

<IfModule mime_module>
 TypesConfig conf/mime.types
 AddType application/x-compress .Z
 AddType application/x-gzip .gz .tgz
 AddType application/x-httpd-php .php .php3
 AddType application/x-https-php-source .phps
</IfModule>
: MIME (Multipurpose Internet Mail Extensions)는 전자우편을 위한 인터넷 표준 포맷이다.
/usr/local/httpd/conf/mime.conf 의 편집없이 여기서 직접 편집가능하다.

<IfModule ssl_module>
 
SSLRandomSeed startup builtin
 SSLRandomSeed connect builtin
</IfModule>
:SSL은 TCP/IP를 사용하는 두 개의 통신 애플리케이션 간 프라이버시와 무결성을 제공하는 프로토콜이다. 클라이언트와 서버를 오고 가는 데이터는 시메트릭 알고리즘을 사용하여 암호화 된다.
퍼블릭 키 알고리즘(RSA)는 암호 키들의 교환과 디지털 서명에 사용된다. 퍼블릭 키 암호는 메시지를 암호화 하는데 사용되는 두 개의 키들을 사용하는 알고리즘을 정의한다.
하나의 키가 메시지를 암호화 하는데 사용되면, 다른 키는 암호 해제에 사용된다.
하나의 키(퍼블릭 키)를 공개하고 다른 키(개인 키)는 숨겨서 안전한 메시지를 받을 수 있다.
위와같이 SSL모듈을 불러들여 활성화 시키는것을 의미하는것이다.

 


Posted by 김과장 epkim