1. httpd.conf
apache 환경 설정 파일
apache의 홈디렉토리를 지정
FollowSymLinks 항목은 심볼링 링크를 따라 이동할 수 있게 하는 옵션
AllowOverrride 항목은 각각의 디렉토리에 별개의 파일을 만들어 접근 권한을 설정할 때 사용하는 옵션(보안상 중요)
웹 서버의 DocumentRoot 로 설정된 디렉토리에 대한 설정을 하는 항목
/usr/local/apache/htdocs 는 사용자들이 웹 서버에 있는 웹 문서를 제대로 읽을 수 있도록 설정되어 있음
웹 서버에 대한 접근은 Allow 를 통해서 이루어짐 (Allow from all 항목은 모든 곳에서 들어오는 접속 허용)
DirectoryIndex 항목은 주소창에 웹 서버의 URL 주소만 지정했을 때 처음에 보여줄 파일을 결정
2. vhost.conf
하나의 Web Server에는 Main Host 외에 별도의 디렉토리를 가진 여러개의 Host를 설정하여 Virtualhost 설정을 통해 1개의 서버에서 여러개의 웹사이트를 운영할 수 있음
/usr/local/apache/conf/extra/httpd-vhost.conf 에서 설정
항목에 대한 설명
DocumentRoot : 웹소스 파일이 위치한 디렉토리의 절대경로 입력
ServerName : 호스트를 제외한 도메인 주소
ServerAlias : 호스트를 포함한 도메인 주소
ErrorLog : 접근시에 발생되는 에러로그가 위치할 경로
CustomLog : 에러로그를 제외한 로그가 위치할 경로
AllowOverrride None : 모든 허용을 하지 않음, None설정으로 이외의 다른 설정들은 모두 무시
Require all granted : 디렉토리 권한(전체 접근 허용)
IP기반 가상 호스트
한 장비에 여러개의 IP를 할당받고 IP별로 가상호스트를 사용하는 방법
IP추가를 위해 네트워크 가드 추가 및 네트워크 설정 등이 필요
포트 기반 가상 호스트
포트를 기반으로 가상 호스트를 설정
Listen 포트에 사용할 포트를 여러개 설정한 후 VirtualHost를 해당 포트로 설정
포트를 인식하고 사용자들이 웹서비스에 접근하는 것은 불편하므로 일반적인 방법 X
이름 기반 가상 호스트
한 장비에 여러개의 도메인 이름을 부여하고 도메인 이름별로 가상 호스트를 사용하는 방법
이름 기반 가상 호스트는 클라이언트 요청시 전송하는 헤더중 Host 헤더정보를 사용하여 가상호스트 설정에 따라 웹 서비스를 하게 됨
NameVirtualHost 설정 : 80포트에서 이름 기반 가상 호스트를 사용하겠다는 의미로 반드시 적어줘야 함
ServerAlias : 웹서비스가 여러개의 도메인을 사용할 경우 지정해 줌(여러개 지정 가능)
3. vhosts.ssl.conf
virtualhost 의 ssl 을 설정의 편리를 위해 httpd-vhosts.conf 를 복사한 파일
사용하기 위해선 httpd.conf 에서 include 를 해줘야 함
여러개의 가상 호스트에 ssl 설정을 하기위해 따로 분리해놓은 설정 파일
4. php flag off 방법
/usr/local/src/php-5.6.25/sapi/apache 디렉토리에서 php 실행 금지
5. maxclient 설정 수정방법
MaxClients : 초기 시작시 실행가능한 최대 아파치 자식 프로세스의 개수를 지정
MaxClients : 최대 동시접속자 수
MaxClients 설정 변경
MaxClients 값 변경 후 apache 재시작
2) 모듈 사용하기
1. 모듈 확인방법
모듈 종류
core : 항상 사용 가능한 핵심 Apache HTTP Server 기능
mod_authn_file : 문자파일을 이용한 사용자 인증
mod_authz_host : 호스트 (이름 또는 IP 주소)를 기반으로 한 그룹 인증
mod_authz_groupfile : 일반 문자파일을 이용한 그룹 권한부여
mod_authz_user : 사용자 권한 부여
mod_auth_basic : 기본 인증
mod_include : 서버 구문 분석 된 html 문서 (서버 측 포함)
mod_filter : 상황에 맞는 스마트 필터 구성 모듈
mod_log_config : 서버로의 요청을 로그에 기록
mod_env : CGI 스크립트나 SSI 페이지에 전달할 환경변수를 수정
mod_setenvif : 요청의 성격에 따라 환경변수 설정을 변경
mod_version : 버전별 설정
prefork : 스레드되지 않은 사전 포크 웹 서버를 구현
mod_mime : 요청 된 파일 이름 확장자를 파일의 동작 (핸들러 및 필터) 및 컨텐츠 (마임 유형, 언어, 문자 세트 및 인코딩)와 연관
mod_status : 서버 활동과 성능에 대한 정보를 제공
mod_autoindex : 자동으로 유닉스의 ls 명령어나 Win32의 dir 쉘명령어와 유사한 디렉토리 목록을 만듦
mod_asis : HTTP 헤더를 포함한 파일을 보냄
mod_cgi : CGI 스크립트 실행
mod_negotiation :콘텐츠 협상 제공
mod_dir : "마지막 슬래쉬" 리다이렉션을 제공하고 디렉토리 index 파일을 서비스
mod_actions : 이 모듈은 미디어종류나 요청메서드에 따라 CGI 스크립트를 실행
mod_userdir : 사용자별 디렉토리
mod_alias : 파일시스템의 다른 부분들을 문서 계층구조에 포함하고, URL 리다이렉션을 제공
mod_so : 시작할때 혹은 재시작할때 실행가능한 코드와 모듈을 서버로 읽어들임
2. mod_ssl 적용
make && make install 후
apache 설정 파일에서 mod_ssl 활성화 확인
3. vhosts.conf 에서 특정 URL 차단하기
vhost : 웹 서버에 기본적으로 존재하는 호스트인 main host 를 제외한 나머지 host
해당 도메인으로 접속을 전부 거부
해당 도메인으로 지정한 ip만 접속을 허용
4. httpd-default.conf 설정 내용
httpd-default.conf : http 기본 설정 파일
클라이언트 요청에 의해 서버와 연결된 후 둘 사이에 아무런 메세지가 발생하지 않아서 오류로 처리하는 시간(대기시간)
네트워크 속도가 나쁘거나 서버의 성능이 낮을 수록 수치를 높게 설정
아파치 프로세스가 자신의 URL 및 SERVER_NAME, PORT 값을 어떠한 방식으로 설정할지 결정하는 지시어
OFF 일 경우 클라이언트에 의해 제공되는 Hostname 과 Port 를 사용함
ON 일 경우 아파치는 ServerName 지시어의 값을 사용
로그 기록시 도메인네임(On) 또는 아이피 주소(Off_로 저장할지 설정)
On 일 경우 DNS 질의를 하기 때문에 성능저하 불러 올 수 있음