본문 바로가기
자격증/리눅스 마스터 1급

리눅스마스터_1급_3과목_웹 관련 서비스

by 이민우 2021. 2. 12.
728x90
반응형

book.naver.com/bookdb/book_detail.nhn?bid=16317946

 

리눅스마스터 1급 기본서(2020)

떠오르는 신흥 강자! 리눅스마스터 1급 2020년 도서가 드디어 영진닷컴에서 출간되었습니다. 리눅스마스터 1급을 취득하기 위해 필요한 최대한의 것을 전부 제공해 드립니다. 시행처에서 발표한

book.naver.com

*해당 글은 학습을 목적으로 위의 도서 내용 중 일부 내용만을 요약하여 작성한 포스팅입니다.

 상세한 내용 및 전체 내용 확인을 원하신다면 도서 구매를 추천드립니다.

 

 

 

웹 서버 종류

  • Apache : 아파치 재단이 주도하는 오픈소스 웹 서버. 사용자의 요청에 따라 프로세스나 쓰레드를 생성해 처리한다.
  • IIS : MS가 개발하고 관리하는 웹 서버. MS ASP를 지원하며, GUI 기반의 관리 콘솔을 사용 가능하다.
  • Nginx : 비동기 이벤트 방식으로 동작. 로드밸런스, HTTP 캐시, 리버스 프록시 기능 제고
  • GWS : 구글이 제공하는 웹 서버

 

 

웹 브라우저 종류

  • 파이어폭스 : 모질라에서 개발한 브라우저. 리눅스, 윈도우, MAC에서 동작. 개코 엔진을 기반으로 HTML 해석
  • 크롬 : 구글에서 개발한 웹 브라우저. 웹킷을 기반으로 HTML 해석
  • 오페라 : 탭 브라우징 등을 최초로 선보인 브라우저
  • 인터넷 익스플로어  : MS 엣지는 HTML5 사용
  • 사파리 : MAC

 

 


웹의 동작 원리

클라이언트 <= 방화벽 => 웹 서버 <=> WAS <=> DB 서버
  1. 방화벽 : 네트워크를 이용한 공격에서 내부망과 내부 시스템 보호
  2. 웹 서버 : HTTP 프로토콜을 이용해 클라이언트의 요청을 처리하고 응답.
  3. 웹 응용 서버(WAS) : 웹 기반 서비스의 응용 역할. 서버는 사용자에 응답하는 기능, 얘는 복잡한 로직 처리 및 기능 확장
  4. DB 서버 : 서비스를 위한 주요 데이터를 저장하고 관리

 

  1. 사용자가 URL을 웹 브라우저에 입력한다.
  2. DNS 조회 기능을 통해 IP 주소로 변환한다.
  3. TCP의 3way-handshaking 연결로 웹 서버에 연결한다. (일반적으로 80포트, HTTPS면 443)
  4. HTTP 프로토콜로 웹 서버에 요청
  5. 웹 서버는 WAS를 통해 기능을 지시하고, WAS는 DB 서버와 연동하여 기능 처리.
  6. 웹 서버가 최종 정보를 클라이언트에 응답(Response)
  7. TCP의 4way-handshaking 로 연결 종료

 

HTTP 프로토콜

  • 클라이언트와 서버 사이에 데이터를 요청하고 전송하기 위한 표준 규약
  1. GET : URL 형식으로 리소스 데이터 요청
  2. HEAD : 리소스의 헤더 정보 요청
  3. POST : 요청할 내용을 바디에 담아 서버에 전송 (폼을 이용한 데이터 전송)
  4. PUT : 새로운 문서를 만들거나 기존 정보 갱신
  5. DELETE : 웹의 리소스를 삭제
  6. CONNECT : 피록시 같은 중간 서버에 접속
  7. TRACE : 요청한 리소스가 수신되는 경로 확인
  8. OPTIONS : 웹 서버가 제공하는 메소드 확인

 

 

HTTP 응답 코드

  • 1XX : 조건부 응답, 정보 교환 / 2XX 성공 / 3XX 리다이렉션 / 4XX 요청요류 / 5XX 서버오류
  1. 200 : ok (오류없이 성공)
  2. 300 : Multiple Choices
  3. 301 : Moved Permanently
  4. 302 : Moved Temporary
  5. 400 : Bad Request
  6. 401 : Unauthorized
  7. 403 : Forbidden
  8. 404 : Not Found
  9. 405 : Method Not Allowed
  10. 408 : Request Timeout
  11. 500 : Internel Server Error
  12. 503 : Server Unavailable

 

 

HTTP 헤더 구조

  • HTTP 프로토콜은 헤더(부가 정보)와 바디(실제 데이터)로 구성된다.
  • 공통 헤더 항목
  1.   Date : HTTP를 생성한 일시
  2.   Connection : Keep-Alive 설정
  3.   Cache-Control : Cache 속성 설정
  4.   Content-Type : 콘텐츠 종류 지정
  5.   Content-Encoding : 데이터 압축 방식
  6.   Content-Length : 전송할 데이터 크기

*Cache-Control

 no-store (저장 안함) / no-cache (서버에 확인 후 캐시 사용) / must-revalidate(만료된 캐시 확인)

 public (공유 캐시에 저장) / private (특정 사용자 환경에서만 저장) / max-age (유효기간 명시)

 

  • 요청 헤더의 주요 항목
  1.  Method, URL, HTTP 버전
  2.  Accept : 서버로부터 전송받고자 하는 콘텐츠의 마임 타입 지정
  3.  If-Modified-Since : 지정한 날자 이후로 변경된 경우만 수신
  4.  User-Agent : 웹 브라우저의 정보 지정
  5.  Cookie : 쿠키를 키와 값의 쌍으로 전송 (세션 아이디 포함)
  6.  Host : 대상 서버의 도메인 이름
  7.  Origin : 요청이 어느 주소에서 시작되었는가
  8.  Referer : 이번 요청 이전의 페이지 주소

 

  • 응답 헤더의 주요 항목
  1.  HTTP 버전, 응답 코드
  2.  Server : 서버 정보
  3.  Location : 응답코드 301, 302 리다이렉션 상태에서의 위치 정보
  4.  Set-Cookie : 클라이언트에 저장할 쿠키 정보 지정
  5.  Expires : 해당 리소스의 유효 일시
  6.  Allow : 응답코드 405 상태에서 서버가 제공할 수 있는 HTTP 메서드 지정

 

 


아파치 웹 서버

  • 오픈소스로 제공되는 웹 서버로, 다양한 OS에서 사용이 가능하다.
  • 아파치 1.X는 프로세스 기반, 2.X는 MPM으로 프로세스와 쓰레드 사용.
  • 아파치 2.X 부터prefork 방식과 worker의 두 가지 방식으로 클라이언트의 요청을 자식 프로세스들에 할당한다.
  • prefork : 하나의 프로세스를 복제하여 미리 동작시킨 후 클라이언트의 요청 처리. 하나의 프로세스가 하나의 쓰레드.
  • worker : 초기에 구동할 프로세스의 수를 지정해, 초과시 새로운 프로세스 생성. 하나의 프로세스가 여러 개의 쓰레드.
  • 아파치 웹 서버는 다양한 모듈을 적재할 수 있으며, 정적 적재와 동적 적재가 있는데 2.x 버전은 동적 적재만 지원.
  • 정적 적재 : 필요한 모듈을 웹 서버와 함께 컴파일 한 후 시작시 동시에 적재
  • 동적 적재 : 웹 서버를 실행한 후, 사용자의 요청이 있을 경우에만 모듈을 적재

*LAMP : Linux+Apache+MySQL(MariaDB)+PHP 를 함께 사용해 다양한 서비스를 동적으로 제공

 

 

PHP (PHP-Hypertext-Preprocessor)

  • 웹 서비스의 로직을 구현하고 동적으로 웹 페이지를 생성하는 언어.
  • 서버에서 실행되는 언어로, DSO(동적 적재 방식)으로 동작한다.

*아파치와 PHP는 configure->make->make install 방식으로 소스코드를 컴파일 및 설치한다.

*MySQL은 cmake->make instrall 방식으로 소스코드를 컴파일 및 설치한다.

*일반적으로 아파치->MySQL(MariaDB)->PHP 순으로 설치한다.

 

설치 방법

hoing.io/archives/183


아파치 웹 서버의 주요 디렉터리

  • 소스코드 컴파일 방식으로 아파치 웹 서버를 설치하면 /usr/local/apache 에 파일이 설치된다.
  • 하위 경로
bin 실행 및 관리용 프로그램 build 컴파일에 사용한 스크립트 파일 저장
cgi-bin CGI 스크립트 파일 저장 conf 아파치의 환경설정 파일 저장
error HTTP 에러 발생시 표시될 메시지 문서 저장 htdocs HTML 등 웹 페이지가 저장
icons 아파치 웹 서버의 이미지 저장 includes 헤더 파일 저장
logs 로그 파일 저장 man Manual 파일 저장
manual HTML 파일 형식으로 매뉴얼 저장 modules 아파치가 사용하는 모듈 파일 저장
  • 패치지 관리자로 설치하면 리눅스 시스템의 디렉터리 특징에 따라 파일들이 저장된다.
/var/www/html HTML 등 웹 페이지가 저장 /var/www/cgi-bin CGI 스크립트 파일 저장
/var/www/error 에러시 표시할 메시지 /var/www/icons 서버사 사용하는 이미지
/var/www/httpd 웹 서버의 웹 로그 저장 /var/www/conf 환경설정 파일 저장
/var/www/conf.d 추가 설정 파일 저장 /usr/lib64/httpd/modules 모듈 파일 저장

*httpd 밑에는 방문 정보인 access_log와 에러 정보인 error_log 가 저장된다.

 

 

아파치 웹 서버의 실행 파일 목록

  • 패키지 관리자로 설치한 경우 /usr/bin 혹은 /usr/sbin에 저장된다.
ab 벤치마킹 도구 apachectl 서버 실행, 종료, 재시작
htpasswd 암호 인증이 필요한 웹의 아이디와 암호 생성 htdigest 사용자 인증 파일 생성, 업데이트
httpd 웹 서버의 데몬 프로그램 logresolve 로그 파일에서 ip 주소를 호스트네임으로 변환
rotatelogs 로그 로테이트를 위한 도구    

*httpd 명령 : httpd [옵션] [파일 이름]

 -t 문법적 오류 점검 / -f : 특정 환경설정 파일로 데몬 실행 / -S : 설정된 가상 호스트 목록 / -l : 컴파일된 모듈의 목록

*apachectl [명령]

 help : 도움말 / start,stop,restart / configtest : httpd.conf의 문법적 오류 점검 /

 graceful : 클라이언트의 접속을 유지하며 httpd.conf 재구성 / status, fullstatus : 웹 서버의 상태 출력

 

 

아파치 웹 서버의 환경설정 파일

httpd.conf 기본 설정 파일
httpd-mpm.conf MPM 관련 설정 파일
httpd-multilang-errordoc.conf 에러 처리에 대한 다국어 문서 설정 파일
httpd-autoindex.conf 디렉터리 목록의 표시 방법 설정
httpd-userdir.conf 개인 사용자의 홈 디렉터리 설정
httpd-info.conf 서버의 실행 상태 모니터링
httpd-vhosts.conf 버추얼 호스트 설정 파일
httpd-dav.conf WebDAV를 설정하는 파일
httpd-default.conf 웹 서버의 기본 설정값을 설정하는 파일
httpd-languages.conf 웹 문서의 언어 설정 파일
httpd-manual.conf 아파치 메뉴얼 문서 지원 파일
httpd-ssl.conf SSL 지원을 위한 파일

*WebDAV : 웹 서버에서 파일 목록의 조회, 수정, 삭제를 수행하는 프로토콜

*설정 파일 변경 후에는 아파치 파일 재시작이 필요.

 

 

httpd.conf의 기본 설정

  1. ServerRoot : 아파치의 주요 파일들이 저장된 최상위 디렉터리
  2. Listen : 아파치 웹 서버가 사용할 TCP 포트 번호
  3. LoadModule : DSO 방식으로 로딩할 모듈 지정
  4. User : 아파치 실행 데몬의 사용자 권한 지정
  5. Group : 아파치 실행 데몬의 그룹 권한 지정
  6. ServerAdmin : 웹 서버 관리자의 이메일 주소를 지정해 오류 발생시 표시
  7. ServerName : 서버의 호스트 이름 지정
  8. DocumentRoot : 웹 문서가 저장되는 기본 디렉터리 경로 지정
  9. DirectoryIndex : 웹 디렉터리를 방문할 때 처음 열릴 파일 목록
  10. AccessFilename : 각 디렉터리별 추가 설정을 위해 각각 저장하는 설정 파일
  11. ErrorLog : 아파치 웹 서버의 에러로그 파일 위치 지정
  12. LogLevel : 에러로그를 기록하는 수준 결정
  13. DefaultType : 기본 MIME 타입 지정
  14. AddType : 파일 확장자에 대한 MIME을 등록해 처리 방식 지정
  15. AddDefaultCharset : 웹 문서들의 기본 문자셋 지정
  16. TypesConfig : 서버가 처리할 수 있는 MIME 타입을 기술한 mime.types 위치 지정
  17. MIMEMagicFile : MIME 타입 결정에 대한 힌트를 담은 파일
  18. ErrorDocument : 오류 처리 방식 등록
  19. Alias : 특정 경로에 대한 별칭
  20. Redirect : 특정 URL로 접근 시 다른 URL로 이동하도록 설정
  21. include : 별도의 설정 파일 포함
  22. AddEncoding : 특정 웹 브라우저를 대상으로 압축된 형식으로 데이터를 전송할 수 있도록 설정
  23. AddLanguage : 웹 페이지에서 지원하는 언어 설정
  24. LanguagePriority : 웹 페이지 언어를 표시할 때 우선순위 지정
  25. AddCharset : 해석시 사용하는 문자셋
  26. AddHandler : .cgi 파일 처리
  27. ScriptAlias : CGI 스크립트를 특정한 위치에서만 제공하도록 설정하여 임의 실행 방지
  28. <Directory 디렉토리명>~</Directory> : 디정한 디렉터리에 대한 권한, 제어 방식, 옵션 지정
  29. <FileMatch 파일명형식>~</FileMatch> : 지정한 파일 형식에 대해 접근 통제 관리 방식 지정
  30. <lfModule 모듈명>~</lfModule> : 지정한 모듈에 대한 세부 동작 옵션 설정

*12에서는 debug < info < notice < warn < error < crit < alert < emerge 순으로 위험한 상태

*28에서 Order, Allow, Deny를 이용해 접근 통제를 설정할 수 있다.

 

 

 

 

 




1. 다음 중 웹브라우저의 특징으로 틀린 것은?

1) 모자이크 : 1993년 일리노이 대학의 국립 슈퍼컴퓨터 활용센터에서 개발
2) 네스케이프 : 미국 네스케이프 커뮤니케이션사가 만든 최초의 상업용 웹 브라우저
3) 인터넷 익스플로어 : MS에서 개발한 윈도우 기반의 웹 브라우저
4) 파이어폭스 : 모질라 프로젝트에서 지원하는 상업용 웹브라우저

4

2. 다음은 MySQL의 소스 컴파일 설치 과정의 한 부분이다. 관련한 설명으로 틀린 것은?

./configure --localstatedir=/usr/local/mysql/data
--prefix=/usr/local/mysql --with-charset=euc_kr

1) --prefix=/usr/local/mysql 은 MySQL이 설치될 홈 디렉터리이다.
2) --localstatedir=/usr/local/mysql/data 는 MySQL의 데이터들을 저장시키기 위한 옵션이다.
3) --with-charset=euc_kr 은 MySQL에서 한글사용을 가능하게 해주는 옵션이다.
4)이 작업의 결과 /usr/local/mysql/data에 mysql과 test 두 개의 데이터베이스가 생성되었다.

4

3. MySQL 4.1.9 설치 시 환경설정을 위한 /configure 완료 후 데몬 테스트까지 수행하기 위한 명령어를
   순서대로 나열하시오.

make -> make install -> /mysql_install_d -> /safe_mysqld &

4. 아파치 서버의 기본 로그 포멧을 지정한 것이다. 설명으로 옳지 않은 것은?

LofFormat "%h %l %u %t \%r\ %>s %b" common

1) %h는 호스트 이름
2) %l은 원격 로그 이름
3) %u는 사용자인증에 사용된 이름
4) %r은 원격지의 호스트이름

4

5. 아파치 설정 파일에서 아파치 서버의 기본 디렉터리를 지정하는 지시자는?

1) ServerSignature
2) ServerRoot
3) ServerPath
4) ServerName

2

728x90
반응형