본문 바로가기

dev

[Apache] httpd.conf

반응형


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모듈을 불러들여 활성화 시키는것을 의미하는것이다.

 


반응형