<< 아파치 웹 서버 설정 |
|
4.1 아파치 웹 서버의 시작과 종료 방법 |
시작 => /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf |
종료 => kill - TERM `cat /var/run/httpd.pid` |
|
4.2 아파치 웹 서버의 설정 |
|
4.2.1 매우 중요한 3개의 conf 파일의 값을 설정한다. |
|
httpd.conf : 웹서버 설정 관련 파일 (srm.conf와 access.conf를 함께 작성해도 |
상관없다.) |
srm.conf : 웹서버 자원 관련 파일 |
access.conf : 웹서버 보안 접근제어 관련 파일 |
|
4.2.2 httpd.conf |
|
내용 |
예약어 |
설정값 |
서버실행방법 |
Servertype |
standalone |
포트번호 |
Port |
80 |
client machine name |
HostnameLookups |
보안을 위한 웹서버 실행자 변경 |
서버관리자의 전자우편 주소 |
ServerAdmin |
root@localhost |
서버의 루트 디렉토리 |
ServerRoot |
/etc/httpd |
각종기록파일 위치지정(서버의 루트디렉토리를 기준으로 한다.) |
Errorlog |
logs/error-log |
Transferlog |
logs/access-log |
Refererlog |
logs/referer-log |
Agentlog |
logs/agent-log |
서버의 프로세스 id 기록 파일 |
PidFile |
/var/run/httpd.pid |
서버 내부상황 보고 |
ScoreBoardFile |
/var/run/apache-status |
서버명(일반적으로 설정안함, DNS에 등록된 경우에 정의) |
#ServerName |
www.tiger.co.kr |
Timeout 시간설정 |
TimeOut |
400 |
서버 프로세스의 갯수설정 |
MinSpareServers |
5 |
MaxSpareServers |
10 |
StartServer |
5 |
동시에 서비스 할 클라이언트의 최대 갯수 |
MaxClient |
150 |
프로세스당 처리건수 |
MaxRequestsPerChild |
30 |
프록시 서버 기능 여부 (프록시를 설정했을 때 on) |
#ProxyRequests |
on |
|
|
|
4.2.3 srm.conf |
|
내용 |
예약어 |
설정값 |
문서 루트 디렉토리 |
DocumentRoot |
/home/httpd/html |
사용자 각자의 홈페이지 디렉토리
(각자의 계정밑에 public_html 디렉토리를 만들고 거기에 html을 두면 된다)
예)- 계정 : hwyoo
- 디렉토리 : /home/hwyoo/public_html/index.html
- browser 요청 : http://www.tiger.co.kr/~hwyoo |
UserDir |
public_html |
디렉토리에서 기본문서 찾는 순서 |
DirectoryIndex |
index.html homepage.html index.shtml |
디렉토리 파일 인덱스 표시방법 |
FancyIndexing |
FancyIndexing |
각 파일에 맞는 icon 파일 설정 |
AddIconByEncoding |
. |
AddIconByType |
. |
..... |
. |
DefaultIcon |
/icons/unknown.gif |
파일에 대한 설명 달기 |
AddDescription |
string" file1 file2 .... |
ReadmeName |
README |
HeaderName |
HEADER |
인덱스에서 제외한 파일 |
IndexIgnore |
..... |
각 디렉토리에 대한 접근 제한 파일 |
AccessFileName |
.htaccess |
기본 문서 유형 편집 |
DefaultType |
text/plain |
전송중 압축 자료 풀기 |
AddEncording |
x-compress z |
AddEncording |
x-gzip gz |
알리아스 기능 |
Alias |
/icons/ /home/httpd/icon/ |
기타 SSI CGI 실행 |
#AddHandler |
cgi-script .cgi |
#AddHandler |
imap-file map |
서버 스크립트 별칭기능
(지정한 곳 이외에서 cgi의 실행을 막는다. 보안상 중요하다) |
ScriptAlias |
/cgi-bin/ /home/httpd/cgi-bin/ |
SSI (Server Side Include) 기능 사용 |
Addtype |
text/html .shtml |
에러 페이지 설정
(예 : erroe 404 : 문서를 찾을 수 없다.) |
ErrorDocument |
404 /missing.html 또는 |
ErrorDocument |
404 http://localhost/missing.html |
|
|
|
4.2.3 access.conf |
|
access.conf : 전체적인 기본설정 |
.htaccess : 각 디렉토리 별로 자세히 결정 |
가. access.conf 설정 |
|
내용 |
예약어 및 설정값 |
문서 이렉토리에 대한 설정 |
<Directory /home/httpd/html>
Options Index Include ExecCGI
AllowOverride None
Order allow, deny
Allow from all
</Directory>
※ 보통 인트라넷인 경우에는 Order deny, allow Deny from all,Allow kgi, admin, webmaster 로 기술해 주어 접근제어에 중점을 둔다. |
CGI 디렉토리에 대한 설정 |
<Directory /home/httpd/cgi-bin>
AllowOverride none
Options none
</Directory>
|
인증 매카니즘 설정하기
(.htaccess) |
<Directory /home/httpd/html>
AuthType Basic
AuthName Yoo hyun woo
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /etc/httpd/conf/.htgroup
Order allow,deny
Allow from all
Require user admin
Require group admin
</Directory>
|
|
|
|
나. 암호파일 만들기 |
- passwd |
|
#htpasswd -c /etc/httpd/conf/.htpasswd admin |
※ -c (create) : 맨처음 .htpasswd를 생성할 때만 사용, 두번째 등록시는 생략한다. |
#htpasswd /etc/httpd/conf/.htpasswd webmaster |
|
- group |
vi 에디터를 사용해서 .htgroup 파일을 만든다. |
|
.htgroup |
admin : admin webmaster |
|
|
4.2.4 MIME 파일 관련 설정 : srm.conf에 추가 |
- MIME : Multipupose Internet Mail Extensions |
- 웹서버와 웹브라우저 사이에 오가는 자료가 어떤형태의 자료인지 지칭하기 위해 사용 |
- Mime.types에 설정 : 거의 손볼 필요 없슴 |
※ 만약 어떤값을 정할 필요가 있을 때는 mine.types에 추가하지 말고
srm.conf에 AddType 지시자로 추가하여 관리 |
|
내용 |
예약어 |
설정값 |
오디오 mp3추가 |
AddType |
audio/mpeg mpga mp2 mp3 |
|
|
|
4.2.5 Log files |
|
파일 |
파일의 역할 |
access_log |
웹서버가 어떤 파일을 읽어 클라이언트에게 전달했는지 보여준다. |
agent_log |
사용자가 어떤 브라우저를 통해 웹서버에 접속했는지 그이름을 나열 |
error_log |
에러상황 기록 |
referer_log |
각 페이지들이 어떻게 무엇을 참조했는지 기록 |
|
|
|
4.2.6 실시간 웹서버 상황보기 |
|
가. access.conf에 다음내용 추가 |
|
내용 |
예약어 및 설정값 |
실시간 웹서버 상황보기 관련 |
<Location /status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from your_admin_hostl
</Location>
|
|
|
|
나. 웹브라우저에서 보기 |
- URL에 다음과 같이 넣고 살행한다. |
- your.server.name/status |
- your.server.name/status?refresh=n |
※ n : 갱신주기 초단위 |
|
|
4.2.7 프록시(Proxy) 기능 |
- httpd.conf 파일에 프록시 기능 설정 |
|
내용 |
예약어 |
설정값 |
proxy 기능 여부 |
ProxyRequests |
ON |
cache 루트 |
CacheRoot |
/var/httpd/proxy |
cache 크기 |
CacheSize |
1024 |
cache garbage collection interval |
CacheGcUnterval |
4 (시간) |
|
|
|
4.2.8 가상 호스트(Virtual Host) |
|
가. 정의 : 한대의 컴퓨터와 하나의 아파치 서버 프로세스를 가지고 한개 이상의 웹
사이트를 동시에 운영하는 기능 IP 별칭 기능으로 ISP 업체들이 제공하고
있는 서비스로 "Web Hostiong" 서비스라 부른다. |
나. 방법 : Only one conputer(server) but multiple web site(domain name) IP 별칭
기능을 사용하여 하나의 네트워크 인터페이스에 여러개의 주소를 부여
도메인 네임서버에 하나의 IP 주소에 대하여 여러개의 서로 다른 이름을 부여
아파치 웹서버는 서로 다른 IP주소 또는 서로 다른 호스트 이름에 대하여 한번의
실행을 통해서도 동시 서비스를 해 낼수 있다. |
|
다. 구현 |
|
IP 주소는 다르고 도메인 이름이 다른경우 |
#ifconfig eth0:0 172.20..7.203 |
#ifconfig eth0:1 172.20..7.204 |
#ifconfig eth0:2 172.20..7.205 |
IP 주소는 하나인데 도메인 이름이 다른경우 |
도메인 네임서버에 요청하여 서로다른 이름이라 할지라도 같은 IP 주소를 가리키게 할 수있다. |
(1) IP 주소가 하나뿐이므로 IP 별칭 기능을 사용할 때 처럼 네트워 크 인터페이스를 설정할 필요는 없다.
단지 도메인 네임 서버(/etc/resolve.conf /etc/host.conf)에 제대로 이름을 등록하면 된다. |
(2) httpd.conf에 가상 호스트 환경을 설정한다.
<VirtualHost www.lion.co.kr>
ServerAdmin lion@localhost
DocumentRoot /home/lion/html
ServerName your.server.name
ErrorLog logs/lion-error-log
TransferLog logs/lion-access-log
</VirtualHost>
|
(3) 설정하고자 하는 가상호스트 갯수 만큼 (2)번의 내용을 선언한다. |
|
|
|
4.2.9 옵션(Options)에서 사용할 수 있는 지시자들 |
|
가. All : MultiViews, IncludesNOEXEC, SymLinksOwneMatch를 제외한
모든 옵션들을 활성화합니다. |
|
나. ExecCGI : CGI 스크립트를 사용할 수 있도록 한다. |
|
다. FollowSymLinks : 서버에서 사용하는 심볼릭 링크를 사용한다. |
|
라. Includes : 서버측 포함 기능(SSI)을 사용할 수 있으며 SSI를 사용하려면
이 옵션을 활성화합니다. |
|
마. IncludesNOEXEC : 서버측 포함 기능은 사용할 수 있으나 #exec, #include를
이용한 CGI 스크립트는 사용할 수 없도록 한다. |
|
바. Indexes : 고객의 디렉토리를 지정하는 URL로 접속했을 때 index.html 파일이
없다면 디렉토리의 내용을 보여준다. |
|
사. MultiViews : 컨텐트 협상 기능을 사용할 수 있도록 한다. |
|
아. SymLinksIfOwnerMatch : 동일한 사용자의 소유로 설정된 심볼릭 링크만 허가한다. |
|
|
- 각각의 인자들은 "+" 혹은 "-"를 붙여 그 기능을 더하거나 뺄 수 있다. |
- 만약 아무런 옵션도 부여되지 않았고 <Limit>지시자도 없다면 All이 적용된 것과
같은 효과를 가진다. |