Web server 설치
기본적인 Web Server 구성을 위한 표준 패키지 설치
확장된 기능을 사용하기 위한 추가 패키지 설치
web server 구축 관련 패키지 설치
패키지 종류
http : httpd web server
httpd-suexec : suexec binary for the Apache http server
system-config-httpd : apache configuration Tool
httpd-manual : httpd web server 에 대한 문서 자료
mod_perl : apache web server를 위한 내장된 펄 해석기
squid : Squid 프록시 캐시 서버
mod_auth_kerb :Kerberos Authentication module for HTTP
mod_ssl : apache web server 에 사용되는 암호 해독 지원
mod_auth_mysql :MySQL database를 이용한 apache web server에 사용되는 기본 사용자 인증 프로그램
discache : Distributed SSL Session Cache
mod_authz_ldap :LDAP Authorization module for the Apache HTTP server
crypto-utils : SSL Certificate and Key Management Utilities
mod_pythnon : Apache Web Server에 사용되는 내장 Python 해석기
설치 확인및 설치
#rpm -qa |grep httpd ----------- HTTP 관련 패킺비 설치 확인
#rpm -ivh httpd-(버젼).rpm
#rpm -ivh httpd-suexec-(버젼).rpm
#rpm -ivh httpd-manual-(버젼).rpm
#rpm -ivh system-config-httpd-(버젼).rpm
httpd.conf 설정
Section 1 :Global Environment (Apache Web Server 에 전체적으로 영향을 미치는 환경 설정)
/etc/httpd/conf/httpd.conf
ServerTokens OS
->Server HTTP 응답 헤더 설정, 오류문 등 Server 메시지에 출력되는 Server에 대한 정보 설정
->OS : Apache Server 버전과 O/S 정보만 출력 (기타 Full,Min,Major,Prod 값 설정가능)
ServerRoot "/etc/httpd"
->apache가 정상적으로 작동 하는데 필요한 여러파일(설정파일,로그파일 ,바이너리파일 ,모듈등)들의 위치설정
PidFile run/httpd.pid
->apache가 실행될 때 자신의 프로세서 아이디 (PID)를 기록 하고자 하는 파일 지정
Timeout : 120
->Client 의 요청을 받은뒤 응단해 주기까지의 시간을 의미,시간 초과시 Client 접속은 해제
KeepAlive Off
->한번 연결된 연결을 유지할 것인지 결정하는지시자
->Client 가 접속되어 있는 상태에서 여러 요청을 허용할수 있는데 On 설정시 요청에 대한 처리 속도 향상
MaxKeepAliveRequests : 100
->하나의 연결에서 허용할 최대 요청수를 지정하는 지시자, 제한을 두지 않을 경우는 0
KeepAliveTimeout 15
-> 동일한 Client 가 지속적인 접속으로 다음 요청을 위해서 기다리는 시간을 설정
-> 지정된 시간 동안 요청이 없을 시 접속을 해제
Listen : 80
-> Apache 가 동작할 Port를 지정하는 지시자 , 특정 IP는 별도 Port를 부여할 경우에도 사용
Include conf.d/*.conf
->Apache의 설정 파일 httpd.conf외에 별도로 특정 모듈들의 설정파일을 따로 만들어 사용
Section 2 : 'Mani' Server Configuration (메인서버 환경설정)
User apache
Group apahe
-> Apache Web Server 의 프로세서를 실행할 때 소유권을 갖게 되는 사용자와 그룹지정
-> Apache 메인 프로세서는 root의 권한으로 실행되고 나머지 자식 프로세서는 apache 권한으로 실행
SerAdmin root@localhost
-> 시스템 관리자의 E-MAIL 주소 설정
ServerName new.host.name:80
-> Client 에게 보내줄 호스트 이름을 설정 (DNS에 등록된 이름을 사용해야함)
-> 등록된 도메인이 없는 경우 IP Address 입력(192.168.0.160:80)
DocumentRoot "/var/www/html"
-> Apache Web Server 가 Service를 하기 위한 기본 문서 파일이 위치하는 Directory
<Directory />
Options FollowSymLinks
AllowOverride None
</Diretory>
->Apache Web Server 가 접근하는 각각의 Directory 에 대해 어떠한 기능/서비스를 허용,거부할 것인지를 설정
->보안을 고려하여 최상위 /(root) Directory는 매우 제한적인 기본값 설정
<Directory "/var/www/html">
</Directory>
->Apache Web Server 의 기본 웹 문서 Directory 지정(DocumentRoot 지시자의 경로와 동일하게 입력)
-><Directory 경로 ></Directory> 지시자 사이에 Options 설정을 통해 해당 Directory 접근 제한 설정
-> 지정된 경로의 하위 Directory까지 적용
*옵션 ----------------------------------------------------------------------------------
None : 옵션을 사용하지 않음
All : MultiViews를 제외한 모든 옵션을 사용
Indexes : DirectoryIndex파일 (Ex. Index.html)이 없을 경우 Directory의 내용을
보여주는 것을 허용, 보안상 사용하지 않음
Includes : Server측 SSI(Server-Side Includes)허용
FollowSymLinks : Directory 의 Symbolic Link또는 Directory일 경우 원본파일이
소유권자와 같은 권한일 경우 Symbolic Link 를 따르도록 결정
ExecCGI : CGI Script 실행 허용 여부 결정
MuliViews : Client 의 Browser에따른 차별화된 내용을 보임
-----------------------------------------------------------------------------------------
AllowOVERRIDE :웹문서 Directory 에 접근 제어 설정 파일 (.htaccess)를 생성하여 각 Directory의 권한
설정을 재정의 할것인지 여부 설정
All 또는 None으로 설정하거나 Options,Fileinfo,AuthConfig,Limit를 조합하여 설정
UserDir disable
->Web Server 에 일반 계정으로 Home Page 를 운영하고자 할경우 일반 사용자의 웹문서 Directory지정
설정방법 :1) UserDir public_html
2) UserDir /var/html
3) UserDir /var/www/*/docs
ex1) UserDir Public_html 설정시 지정되는 웹문서의 위치
/home/username/Public_html/index.html
ex2) UserDir enable
UserDir disable root user01 user02
: 일반 사용자에게 Web Directory 기능을 허용하되, root,user01,user02 사용자는 불허
DirectoryIndex Index.html Index.html.var
-> Client가 Web Server 에게 웹문서를 요청할때 Web Server가 웹문서를 찾는 순서를 지정
AccessFileName .htaccess
-> 각각의 Directory에 대해 AllowOverride 지시자에 의해 주어진 옵션에 한하여 Directory의 접근권한을
설정할수 있는 파일을 지정
HostnameLookups off
-> Apache Web Server의 오류 로그 이름과 위치 지정(Server 작동 관련 문제 발생시 원인과 해결 방법제공)
LogLevel warn
-> error_log 파일에 기록되는 에러 메시지의 레벨 지정
-> debug,info, notice, warn, error, crit, alert, emerg 값 중에서 지정
LogFormat
-> combined 형식, 또는 common 형식 Log File Format 정의
-> combined 형식은 commont 형식과 큰 차이는 없으며 %{Referer}i,%User-Agent}i 사용
-> %{Refere}l: HTTP 요청 헤더(Client 가 참조한 페이지), %User-Agent}l:Client가 사용한 Web Browser
CustomLog logs/access_log combined
-> Client가 Web Server에 접근한 로그를 기록해 주는 access_log파일의 위치 지정
CustomLog log/referer_log referer
-> Client가 Web Server에 요청한 페이지 정보 출력
CustomLog logs/agent_log agent
-> Client가 Web Server에 접근할 때 사용한 Web Browser정보출력
Section 3 : Virtual Hosts(가상 호스트에 대한 환경 설정)
Virtual Hosts 설정이란?
1) Web Server 한대를 이용하여 다수의 도메인 (Web Site)을 운영할 경우에 사용
2) 이름기반 (Name-based)방식, IP기반(IP-based)방식, 이름-IP 기반(Name & IP-based) 방식이 존재
-> 이름기반 가상호스트 방식 : 하나의 IP Address를 갖는 Web Server를 이용하여 다수의 도메인을 운영
-> IP 기반 가상 호스트 방식 : 다수의 IP Address를 갖는 Web Server를 이용하여 다수의 도메인을 운영
3)가상 호스트가 정상적으로 설정되었는지 확인 하는 방법 = httpd -S
NameVirualHost *:80
-> 이름기반 (Name-based)방식에서만 사용하는 지시자이며 * 대신 Web Server 의 IP Address입력
<VirtualHost *:80>
</VirtualHost>
-> Virtual Hosting 설정과 관련된 설정(이름기반 ,IP 기반,이름-IP 기반 방식 모두 해당)
지시자 : 의미
ServerAdmin : 가상호스트 관리자의 E-MAIL 설정
DocumentRoot :웹문서 Directory
ServerName : 가상 호스트의 Domain Name
ErroLog : 가상호스트 도메인의 에러 로그 파일의 위치와 이름지정
CustomLog : 가상호스트 도메인의 접속 로그 파일의 위치와 이름지정
DNS - test.com
/var/named/chroot/var/var/named
cp localhost.zone test.com.zone
vi test.com.zone
IN A 127.0.0.1
IN AAAA ::1
삭제
www IN A 192.168.1.35
추가
vi etc/named.conf
zone "test.com" IN {
type master;
file "test.com.zone";
};
/etc/httpd/logs Webservice 로그파일 저장되는 경로
/etc/httpd/conf/httpd.conf
NameVirtualHost 192.168.1.35:80 <--- # 제거후 VirtualHost 사용할 ip로 설정
<VirtualHost 192.168.1.35:80>
ServerAdmin webadmin@test.com
DocumentRoot /var/www/html/test.com
ServerName www.test.com
ErrorLog logs/test.com-error_log
CustomLog logs/test.com-access_log common
</VirtualHost>
<VirtualHost 192.168.1.35:80>
ServerAdmin webadmin@test1.com
DocumentRoot /var/www/html/test1.com
ServerName www.test1.com
ErrorLog logs/test1.com-error_log
CustomLog logs/test1.com-access_log common
</VirtualHost>
<VirtualHost 192.168.1.35:80>
ServerAdmin webadmin@test2.com
DocumentRoot /var/www/html/test2.com
ServerName www.test2.com
ErrorLog logs/test2.com-error_log
CustomLog logs/test2.com-access_log common
</VirtualHost>
/var/www/html/ <--------- index파일 디렉토리 위치 test.com, test1.com, test2.com index 파일 위치
named.conf 리눅스에선 named.ca
ftp ftp.internic.org
anonymous
cd domain
get named.root