728x90
반응형
리눅스에서 아파치 httpd 설치를 설치하고, 아파치의 메인 설정 파일인 httpd.conf 파일에 대해 알아보도록 한다.
/etc/httpd/conf/httpd.conf
아파치(Apache)의 메인 설정 파일이다. apache 설치시 자동적으로 /etc/httpd 경로에 설치가 되어지며 /etc/httpd/conf/경로에 httpd.conf 설정 파일이 존재한다.
기본 구성 요소로는 다음과 같다.
ServerRoot
- 아파치 Root 홈 디렉터리 경로이다.
- 절대경로로 설정해줘야 한다.
- 설치시 기본적으로 /etc/httpd 경로로 지정되어 진다.
Listen
- Apache 웹 서버 포트를 지정한다.
- 다른 Ip 주소와 포트에 대해서 연결 할 수 있도록 해준다.
- 미 지정시 아파치가 실행되지 않는다.
- 여러 포트 지정시 Listen 지시자를 여러번 선언한다.
Include
- httpd.conf 파일이 아닌 다른 설정 파일을 포함하여 적용한다.
ServerAdmin
- 서버 오류 발생 시 클라이언트로 전송할 오류 메시지에 보여질 관리자 이메일 주소이다.
- 에러 발생시 에러 화면에 해당 이메일 주소가 표시된다.
ServerName
- 서버의 도메인을 입력한다.
- 클라이언트에게 보여줄 호스트 이름 및 포트를 지정한다.
- DNS 주소가 등록되지 않으면 IP주소로 설정한다.
DocumentRoot
- 아파치 서버의 웹문서가 있는 경로 및 웹 페이지의 루트를 지정한다.
- 마지막 경로엔 '/' 를 지정하지 않는다.
- DocumentRoot 라인 이후에 <directory> 지시자가 작성된다.
<Directory>
<Directory {디렉터리 명}>
[Options]
[AllowOverride]
[Require]
...
</Directory>
- 각 디렉터리의 고유한 설정을 하기 위한 블록이다.
- options : 특정 디렉터리 하위의 모든 디렉터리와 파일에 대한 접근 권한을 제어한다.
- AllowOverride : 디렉터리에 .htaccess 파일이 있을 경우 기존 설정을 덮어쓸지 여부를 설정한다.
- Require : 해당 디렉터리의 접근 허용 여부 설정한다.
Options
option | 설명 |
None | 모든 접근을 허용하지 않는다. |
All | 모든 옵션설정을 허용한다. |
Indexes | 디렉터리 접근시 DirectoryIndex 지시자에 설정한 파일이 없을 경우, 디렉터리 목록을 화면에 표시한다. |
Includes | mod_include를 사용하는 SSI(Server Side Includes)를 허용한다. |
IncludesNoExec | SSI을 허용하지만, #exec cmd 와 #exec cgi는 사용할 수 없자 |
FollowSymLinks | 심볼릭 링크 사용 가능하다. |
ExecCGI | mod_cgi를 사용하는 CGI 스크립트 실행 가능하다. |
MultiViews | 클라이언트가 요청한 media type과 content-encoding을 가지고 다중확장자를 지원하기 위해 MultiViews 기능을 사용한다. |
AllowOverride
option | 설명 |
None | htaccess 파일을 override 하지 않는다. |
All | htaccess 파일을 우선 적용하도록 override를 허용한다. |
AuthConfig | 클라이언트 인증 지시자의 사용을 허용한다. |
Require
option | 설명 |
all denied | 모든 접근을 거부한다. |
all granted | 모든 접근을 허용한다. |
ip [ip주소] | 특정 ip주소의 접근을 허용한다 |
not ip [ip주소] | 특정 ip주소의 접근을 거부한다 |
.htaccess 파일
# vi /usr/local/apache/htdocs/admin/.htaccess
AuthType Basic (인증 방식 기본)
AuthName "Admin Login" (표시할 인증 메시지)
AuthUserFile /usr/local/apache/conf/password(사용자인증 파일명)
Require valid-user (사용인증할 방식 user 나 group과 인증할 대상)
- 디렉터리에 대한 설정 옵션을 제공하는 파일
- 허가, 인증 URL 재작성, 스팸봇 차단 등등의 기능
Order, Deny, Allow
- Order : Deny와 Allow의 순서를 정한다. 먼저 적은 순서가 먼저 적용된다.
- Deny : 접근 제한 대상을 설정한다.
- Deny from all : 모든 클라이언트의 접근을 거부한다.
- Deny from [Ip주소] : 특정 주소의 접근을 거부한다.
- Allow : 접근 허가 대상을 설정한다.
- Allow from all : 모든 클라이언트의 접근을 허용한다.
- Allow from [Ip주소] : 특정 주소의 접근을 허용한다.
<Directory "/usr/local/apache/htdocs/admin">
Order Deny, Allow
Deny from All
Allow from 203.247.40.0
</Directory>
-> 접근을 통제하는 디렉터리는 /usr/local/apache/htdocs/admin이고, 203.247.40.0 네트워크 대역의 주소를 갖는 클라이언트의 접근 만을 허가한다.
- 디렉터리 경로에 "/" 로 설정하면 모든 디렉터리에 적용되는 옵션을 설정한다.
DirectoryIndex
- 클라이언트가 디렉터리 요청할때 DirectoryIndex에 설정된 파일명을 요청한다.
사용 예시]
# DirectoryIndex index.html, index.htm, index.php
> 웹 디렉터리 접근시에 인식되는 인덱스 파일 순서를 index.html, index.htm, index.php 순으로 지정한다.
UserDir
UserDir [디렉터리]
- 일반 사용자의 웹 디렉터리를 지정한다.
Files
- 해당 파일로 설정된 파일에 대한 옵션을 설정한다.
- 주로 접근 권한을 설정한다.
ErrorLog
- 아파치의 error log가 생성되는 경로를 지정한다.
LogLevel
- log를 남길 기준의 Level을 설정한다.
- 레벨은 debug, info, notice, warn, error, crit, alert, emerg 가 있고, 기본으로 warn으로 설정되어 진다.
ErrorDocument
- 아파치에서 Error 발생 시 서버가 클라이언트에게 반환할 메시지 및 페이지를 설정한다.
Error code | 설명 |
400 | Bad Request, 클라이언트의 잘못된 요청으로 처리 할 수 없음 |
401 | Unauthorized, 클라이언트의 인증 실패 |
402 | Payment required, 예약됨 |
403 | Forbidden, 접근 허가가 거부됨 |
404 | Not found, 존재하지 않는 문서 |
<VirtualHost>
<VirtualHost [Ip주소:포트]>
ServerAdmin ..
DocumentRoot ..
ServerAlias ...
</VirtualHost>
- 아파치 웹 서버에서 주 도메인 이외에 추가로 도메인 설정
반응형
'서버 운영 > Linux' 카테고리의 다른 글
리눅스 NFS 서버, 클라이언트 설치 및 확인 (0) | 2021.10.18 |
---|---|
[리눅스] 인증 NIS 서버, 클라이언트 구성 및 NIS 관련 명령어 (2) | 2021.10.18 |
리눅스 lsattr, chattr 파일 속성 관리 명령어 (0) | 2021.10.15 |
리눅스 su, sudo 명령어 및 visudo로 root 권한 설정하기 (0) | 2021.10.15 |
리눅스 커널 설정 sysctl 명령어 (0) | 2021.10.15 |