Web Server
클라이언트가 Web browser를 통하여 접속을 요청하면 요청한 데이터를 클라이언트 web browser에게 전송하는 역할을 하는 서버
web server 동작 과정
1. 클라이언트 Web browser에서 Web server로 데이터 요청
2. 클라이언트는 IP주소가 아닌 Web server의 Domain name 처리를 진행하므로 DNS서버를 통해 Web server의 Domain name을 Web server의 IP주소로 변화
3. 변환한 IP주소를 이용하여 Web server 80번 포트를 이용하여 TCP 연결을 진행 ( 세션 연결 : TCP 3way-handshaking )
4. 세션 연결 완료 후 Web server는 DocumentRoot로 정의된 디렉터리에 저장되어있는 Main page(Code 형태)를 클라이언트에게 전송
5. 클라이언트는 서버로부터 전송 받은 Main Page(Code 형태)를 Web browser가 이를 해석하여 클라리언트 화면에 출력
# vi /etc/httpd/conf/httpd.conf
line 353 : conf.d 디렉토리 아래 .conf로 끝나는 파일들을 불러 들여오는 라인
원래는 httpd.conf에 전부 적혀있어 파일의 크기가 컸는데 설정파일들을 구분해 놓아 보기 쉽게 만들어 놓음
line 31 : 작업 디렉토리
line 42 : 웹서버 포트지정
line 56 : conf.modules.d 디렉토리 아래 .conf 로 끝나는 파일들을 불러 들여오는 라인
line 67, 68 : 세션 프로세스 소유권 > nobody로 수정
line 86 : 문제가 생겼을때 수신 받을 이메일 주소
line 95 : 서버네임 > www.ysy.com:80
line 119 : 클라이언트가 가장 먼저 접근하는 경로 DocumentRoot(/var/www/html) Main page 요청
저장 후
데몬 실행
방화벽 설정
# apachectl configtest
접속해 보면 web server는 잘 구축되어 서비스는 잘 돌아가지만
DocumentRoot(/var/www/html)에 Main page 소스 코드를 작성하지 않아서 기본 페이지가 나온다
/var/www/html/index.html을 작성하고 재실행 하면
작성한 내용대로 출력된 페이지를 볼 수 있다.
line 119 : DocumentRoot를 수정> /apache/html
line 102~105
line 102 : 디렉토리 설정 (하위경로의 디렉토리에도 해당 설정이 적용된다.)
line 103 :
line 104 : 102에서 지정한 경로의 하위 경로들에도 클라이언트들은 접근할 수 없다. DocumentRoot로 지정한 /apache/html도 마찬가지
line 124~127
line 126 : line 104에서 전부 차단한걸 /var/www에서는 허용 (화이트리스트 정책)
line 129~133
line 130 : 디렉토리 리스트도 보여주고 심볼릭링크들까지 보여준다 (쓸 필요 없다.)
line 132 : : line 104에서 전부 차단한걸 /var/www/html에서는 허용 (화이트리스트 정책)
>> 하지만 documentRoot를 바꿧으니 129~133은 필요가 없다.
>> line 135~138 추가 해줘야한다.
line 144~146 : main page 소스코드 파일 이름 (여러개가 있을 경우 앞에서부터 확인)
# mkdir -p /apache/html
# vi /apache/html/index.html 메인페이지 소스코드 작성
저장 후 요청을 보내면
line 162 : 로그 저장 위치
line 170 : 로그 레벨 설정 (엄청 상세한 로그들 모두 저장, 정말 중요한 로그들만 저장)
line 173,174,177 : log format / http header 정보를 바탕으로 가져온다.
line 181 : log format 선택
'[Linux]' 카테고리의 다른 글
[Linux] 리눅스 django / SCL / MariaDB (0) | 2022.07.12 |
---|---|
[Linux] 리눅스 ssl / web server (0) | 2022.07.12 |
[Linux] 리눅스 DNS (0) | 2022.07.04 |
[Linux] 리눅스 Ansible/Playbook 실습 (0) | 2022.07.02 |
[Linux] 리눅스 Ansible 실습 (0) | 2022.07.02 |