-
리눅스 아파치 httpd.conf설명(정의)리눅스 2014. 7. 23. 16:16
우선은 경로 부터 알고 갈꼐요~~~
cd usr/local/apache2/conf 를 입력하셔서 설치되어있는 아파치에 conf 라는 디렉토리로 들어가시는 겁니다
Listen
- 서버의 어떤 포트에서 클라이언트의 요청에 응답하는지를 설정합니다. Listen은 중복해서 사용할 수 있으며 이를 이용해서 Port Based Virtual Host를 지정할 수 있습니다. 또한 Listen지시자는 Port이외에도 IP주소나 IP주소와 포트에서의 사용자 요청에 응답하도록 설정할 수 있습니다.
Listen 80
Listen 8080
Listen 192.168.1.1:80
Listen 192.168.1.1;8000
Port 80
- 아파치가 사용할 기본 포트를 지정한다.
User nobody
Group nobody
- 자식 프로세스가 생성될 때 그 프로세스의 소유자와 소유그룹을 결정한다.
- 보안상 절대 root 로 설정하는 일은 없도록 한다.
ServerAdmin test@example.com
- 아파치 서버 관리자 e-mail을 설정하는 부분인다.
ServerName test.com
- 아파치 서버가 작동중인 서버 이름을 설정한다. 기본적으로 주석 처리 되어 있다.
도메인이 아닌 IP주소로 사용자의 홈페이지에 접속할 때 URL 끝에 / 를 붙여야 접속이 되는 경우가 있는데 이럴 경우 ServerName 지시자에 주석을 제거하고 아이피 주소를 설정해 주면 된다.
DocumentRoot "/usr/local/apache2/htdocs"
- 아파치의 웹 문서들의 루트 디렉토리를 지정한다.
------------Directory 구문에 대한 자세한 설명 및 시스템 루트(/)디렉토리에 대한 제어 ----------------
<Directory /usr/local/apache2/htdocs> 디렉토리에 대한 제어
options Indexs FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Durectriy>
사용자 홈 디렉토리인 public_html 디렉토리에 대한 제어
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indees SymLinksifOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
----------------------디렉토리 제어와 관련된 설정과 옵션 설명------------------------------
Options(옵션) 설명
옵션 구문은 Options 라는 키워드로 시작된다.
FollowSymLinks : 실볼릭 링크를 허용한다.
SymLinkslfOwnerMatch : 링크를 허용하지만 링크 하고자 하는 사용자의 소유로 되어 있는 것만 링크 가능하다.
ExecCGI : CGI 실행을 허용한다
Includes : SSI를 허용한다.
IncludesNOEXEC : SSI를 허용하지만 "#exec" 와 "include"로 정의한 CGI 실행은 거부한다.
Indexs : 웹 서버의 디렉토리에 접근 했을 때 DirectoryIndex 지시자로 설정한 파일이 없을 경우 디렉토리 안 의 파일 목록을 보여준다.
MultiViews : 클라이언트의 요청에 따라 적절하게 페이지를 보여준다. 쉽게 생각하면 HTTP 헤드 정보 가 Aceept-Language:ko 라면 Korea 언어에 맞게 데이터를 클라이언트에 전송한다.
None : 모든 설정을 부정한다.
All : MultiViews를 제외한 옵션을 의미한다.
AllowOverride 설명
AllowOverride는 클라이언트의 디렉토리 접근 제어에 관한 설정이다.
AllowOverride는 AccessFileName 지시자와 밀접한 관계를 가지고 있다.
아래의 각 설정값들은 AccessFileName 지시자에서 설정한 파일에 적용된다.
None : AllowOverride를 off 한다는 것이다.
All : AccessFileName 지시자로 설정한 파일에 대해 민감하게 반응한다. 모든 지시자를 사용할 수 있다.
AuthConfig : AcessFileName 지시자에 명시한 파일에 대해서 사용자 인증 지시자 사용을 허락한다.
--> AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile,
require등을 사용할 수 있다.
FileInfo : AccessFileName 지시자로 설정한 파일에 대해서 문서 유형을 제어하는 지시자 사용을 허락한다.
--> AddEncoding, Addlanguage, AddType, DefaultType, ErrorDocument, LanguagePriority등을 사용할 수 있다.
Indexes : AccessFileName 지시자로 설정한 파일에 대해서 디렉토리 Indexing을 제어하는 지시자 사용 을 허락한다,
Limit : AccessFileNmae 지시자로 설정한 파일에 대해서 호스트 접근을 제어하는 지시자 사용을 허락한 다.
--> Allow, Deny, Order 등을 사용할 수 있다.
Options : AccessFile지시자에 명시한 파일에 대해서 Option 그리고 XBiHack 등과 같은 지시자 사용을 허락한다.
AllowOverride와 AccessFileName에 설정한 파일을 이용해서 아파치 인증 기능을 사용할 수 있다.
아파치 인증에 관한 자세한 설명은 "http://rootman.co.kr의 아파치 인증" 강좌를 참고하시기 바랍니다.
--------------------------------------------------------------------------------------------
DirectoryIndex index.html
- 파일 이름을 명시하지 않고 디렉토리에 접근할 경우 자동으로 보여줄 파일 이름을 설정한다.
- 여러개의 파일 이름을 설정할 수 있다. 파일 이름에 대한 구분은 Space 키, 즉 빈 공간으로 구분한다.
AccessFileName /htaccess
- 특정 디렉토리의 접근 제어를 할 파일 이름을 정의한다.
- 단, 해당 디렉토리의 AllowOverride 에서 None으로 설정되어 있지 않아야 된다.
CacheNegotiatedDocs
- 프록시 서버에 문서를 캐시하도록 설저한다. 기본적으로 주석 처리 되어 있다.
HostnameLookup off
- 아파치의 로그 파일에는 기본적으로 클라이언트 IP 주소 정보가 기록되는데 이 설정을 ON하면
호스트 네임(도메인) 이 기록된다. 하지만 DNS 질의를 해야 되므로 속도가 느리다는 단점이 있다.
그냥 OFF로 사용하는것을 추천한다.
ErrorLog /usr/local/apache/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사용자 접속을 기록할 로그 포멧을 정의한 부분이다. 위와 같이 4가지 형식의 로그 포멧이 기본적으로 설정되어 있다.
common : 가장 일반적인 로그 기록
referer : 현재 아파치 서버에 접속하기 전에 머물렀던 URL을 기록한다.
agent : 접속자의 웹 브라우저(OS 포함) 종류를 기록한다.
combined : 위의 3가지 로그 포멧을 모두 조합한 것이다.
접속자에 대한 많은 정보를 기록하길 원한다면 combined으로 설정하면 된다.
CustomLog /usr/local/apache/logs/access_log common
- 로그 파일의 경로와 파일 이름, 그리고 로그의 포맷을 설정한다.
- common 이외에 위에서 정의한 로그 포멧을 지정할 수 있다.
ServerSignature On
- apache 서버가 생성하는 Error 페이지와 FTP 디렉토리 목록, mod_status, mod_info 등에 apache 서버
버젼과 가상 호스트 네임을 추가적으로 표시해 준다.(On 설정시) Email 설정시 ServerAdmin의 E-mail
주소를 페이지에 링크해 준다.
On, Off, Email을 설정해서 사용할 수 있다.
Alias /icons/ "/usr/local/apache/icons/"
- 특정 디렉토리를 alias 한다. 위의 경우는 /usr/local/apache/icons/ 디렉토리를 icons 라는 이름으로
alias 한것이다.
- icons 디렉토리 앞의 /(슬래쉬)는 DocumentRoot를 의미한다.
scriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
- Alias 와 같은 형식이고 실행할 스크립트 디렉토리를 alias할 때 사용한다.
'리눅스' 카테고리의 다른 글
리눅스(Linux) cronolog 설정방법! (0) 2014.11.14 리눅스(CentOs) jdk 1.7 설치 및 버전 변경!! (0) 2014.11.12 리눅스 로그파일의 종류!! (0) 2014.07.14 리눅스 chattr 옵션&사용법 (전체 디렉토리 삭제 방지 및 해킹 방지) (0) 2014.07.14 리눅스 ping 응답 차단/해제 하는 방법 (0) 2014.07.12