▶ httpd.conf : 전역 환경 설정
ServerRoot “/app/apache”
: 웹서버의 설정 파일, 로그파일 등이 저장되는 최상위 디렉토리
Timeout 120 //120초 뒤에 연결 끊어짐
: 서버와 클라이언트의 연결 시에 아무런 메시지가 없을 때에 오류로 처리되는 초단위 시간
MaxClients 150 //서버가 수용할 수 있는 소켓 개수
: 접속 가능한 최대 client 수
Startservers 20 //클라이언트가 접속 안 해도 20개 띄워놔서 제공할 프로세스 세팅
: 초기 서버 프로세스의 수
MinSpareServers/MaxSpareServers
: 대기 상태의 프로세스 수
ServerName [명칭]
: DNS나 hosts 파일에 등록된 이름을 지정한다.
ServerAdmin root@localhost
: 관리자의 메일 주소
** 웹에서는 아이디랑 패스워드 이미 한번 입력하면 그때마다 확인을 계속하므로 계속 새로운 로그인 작업이 일어난다.
웹브라우저에서 로그인 정보를 저장하는 곳이 쿠키이다.
서버에서 로그인 정보를 저장하는 곳은 세션이다.
▶ httpd.conf : 기본 서버 구성
ServerTokens Major|Minor|Min|Prod|OS|Full
: 클라이언트에 보내는 응답에 포함될 서버의 정보에 대한 설정
(Full은 권하지 않음)
DocumentRoot “/app/apache/htdocs”
: 웹서버의 홈 디렉토리
DirectoryIndex index.html index.java index.php
: 메인 페이지 파일명
ErrorLog logs/error_log
: 웹서버에 문제가 발생 시에 에러를 기록하는 로그파일.
CustomLog logs/access_log combind
: 외부에서 접근한 기록에 대한 로그파일
UserDir public_html
: 사용자의 개인 홈 디렉터리 지정
▶ httpd.conf : Directory 설정
<Directory “/app/apache/htdocs”> … </Directory>
• 웹서버는 디렉토리 단위로 설정
ex)
<Directory "/app/apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow, deny
Allow from all
</Directory>
** document root는 반드시 지정해준다.
option 항목
• ALL : 가능한 모든 옵션을 다 사용한다.
• None : 아무런 옵션도 없다.
• Indexes : 메인 페이지가 없는 경우 파일 목록을 보여준다. //파일 목록 보여주는 것은 보안상 좋지 않음
• FollowSymLinks : 디렉토리의 심볼릭 링크를 이용한다.
• ExecCGI : CGI를 실행한다.
AllowOverride 항목 //아파치 자체가 사용자 계정 관리하는 것
• 디렉토리에 대한 apache 레벨에서의 접근 제한
• 사용자 인증 파일인 .htaccess 파일 사용 여부
• 현재 인증은 apache 레벨에서 구현하지 않는다.
Order 항목(2.2)
• 접근 권한 적용 순서
ex)
Order deny, allow //deny먼저 지정 후 allow를 지정 (기본 정책은 deny, 예외는 allow)
Deny from all
Allow from 192.168.123.
- 192.168.123. 으로 시작하는 IP를 제외하고 모든 접속을 막는다.
Require 설정
Require all [denied | granted] : 기본 설정
Require [not] ip ip_주소 : IP별 설정
Require all granted
Require not ip 192.168.123.0/24
- 192.168.123.0 네트워크를 제외하고 모두 접속 허용
각 사용자의 개인 홈 디렉터리에 대한 설정 예
<Directory "/home/*/public_html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/home/*/public_html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
실습
개인 홈페이지 만들고 개인 홈페이지 접속
개인 홈페이지 httpd.conf가 없음 (/httpd/extra 디렉토리에 있음 찾아서 쓰기)
가상 호스트 설정 (ip기반) 실습
실습 내용
www.st04.sec > 192.168.10.133
www.st04.itc >192.168.10.132
서로 다른 웹페이지가 열리게 설정할 것이다.
각각 어디서든지 DNS 서버 지정하면 두 개의 웹페이지가 열리게 할 수 있다.
DNS server 192.168.10.131
webserver : 192.168.10.133, 192.168.10.132
< 작업 수행 과정 >
1) 가상 인터페이스 추가하여 ip 세팅
2) DNS 서버 도메인 추가
www.st04.sec > 192.168.10.133
www.st04.itc >192.168.10.132
3) 아파치 서버에서 서로 다른 홈페이지가 열리도록 설정
www.st04.sec > 192.168.10.133 디렉토리를 /home/httpd/html/133
www.st04.itc >192.168.10.132 디렉토리를 /home/httpd/html/132
1) ip 추가
ens32:0 파일을 하나 만들어서 수정할 것이다.
ens32:0 을 수정한다.
네트워크를 재시작하고 ip가 추가된 것을 확인한다.
2) DNS 서버 도메인 추가
www.st04.sec > 192.168.10.133
www.st04.itc >192.168.10.132
/etc/named.conf 파일에 st04.itc 설정을 추가한다.
# /var/named/st04.zone
# /var/named/st04_itc.zone
# /var/named/* 모두 그룹 소유자를 named로 변경한다.
named.service를 재시작한다.
host 명령을 이용해 확인한다.
3) 아파치 서버에서 서로 다른 홈페이지가 열리도록 설정
www.st04.sec > 192.168.10.133 디렉토리를 /home/httpd/html/133
www.st04.itc >192.168.10.132 디렉토리를 /home/httpd/html/132
# vi /app/apache/conf/httpd.conf
<VirtualHost 192.168.10.132>
DocumentRoot /home/httpd/html/132
ServerName 192.168.10.132
<Directory "/home/httpd/html/132">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.10.133>
DocumentRoot /home/httpd/html/133
ServerName 192.168.10.133
<Directory "/home/httpd/html/133">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
아파치 서비스를 재시작해준다.
각각 www.st04.sec/ 와 www.st04.itc/ 에 들어가면 잘 된 것을 확인할 수 있다.
다른 페이지가 열리는지 확인이 어렵기 때문에 다음과 같은 작업을 수행한다.
index.html 파일이 각 디렉토리 별로 없기 때문에 각 디렉토리에 index.html 파일을 만들어준다.
복사하는 명령을 이용해서 만든다.
각 index.html 파일 내용을 변경한다.
아파치 서비스를 재시작한다.
www.st04.sec/ 와 www.st04.itc/ 에 잘 설정된 것을 확인할 수 있다.
'리눅스 공부 기록' 카테고리의 다른 글
리눅스 18 - NFS (0) | 2021.11.22 |
---|---|
리눅스 Apache 실습 3 - 도메인 기반 httpd.conf(가상 호스트) 설정 (0) | 2021.11.18 |
리눅스 Apache 실습 1 - Httpd 서버 관리자와 Web page 관리자 분리 (0) | 2021.11.17 |
리눅스 local repository 생성 (0) | 2021.11.17 |
리눅스 17 - Apache (아파치) + Apache 설치하기 (0) | 2021.11.15 |