PART 03 > ch 01 네트워크 및 서비스의 활용

정희수·2021년 2월 28일

웹 관련 서비스

웹 관련 서비스의 이해

웹 서비스 구성 요소

  • 웹 서버
    웹 클라이언트로부터 HTTP 요청 받아 웹 문서를 전달하는 역할을 수행
    웹 서버 프로그램에는 아파치 웹 서버, Ngix, 구글의 GWS, 마이크로소프트 IIS 등이 있다.
    (기출) 가벼움과 높은 성능을 목표로 하는 웹 서버 프로그램이다. 리버스 프록시, 로드밸런서, HTTP Cache 기능을 제공한다. => NGINX

  • 웹 문서(HTML 문서)

  • 웹 브라우저
    웹 서버와 통신하며 HTML 문서나 파일을 연동하고 출력하는 응용프로그램이다.
    웹 서버와 HTTP 프로토콜로 통신하고, 웹 페이지를 URL로 접근한다.
    (기출) 리눅스에서는 firefox, opera, chrome 등이 있다. (리눅스에서 X => 사파리(애플), 익스플로러(마이크로소프트))

웹 작동 원리

웹 브라우저를 HTTP 클라이언트, 웹 서버를 HTTP 서버라고 한다.
HTTP 클라이언트는 HTTP 서버에 요청방식(HTTP method), URL, 프로토콜 버전 등을 전송하고 HTTP 서버는 요구에 따라 데이터와 상태코드 등으로 응답한다.

주요 HTTP Method

GET: 서버로부터 자료 가져옴
HEAD: HTTP 헤드 정보만 가져옴
POST: 서버에 정보 저장
PUT: 서버에 자료 올린다.(수정)
DELETE

telnet 명령으로 다른 서버에 접속한 후 GET / 입력하면 해당 웹 서버의 정보를 알 수 있다.

HTTP 응답

HTTP 서버는 요청에 대한 상태코드를 전송한다.
2xx: Successful
3xx: redirection
4xx: Client Error
401: Unauthorized
404: Not Found
5xx: Server Error

웹 관련 서비스의 운영

웹 서버 설치의 개요

아파치는 1. 무료 공개 소프트웨어 2. 리눅스와 유닉스 계열 뿐만아니라 다양한 OS 지원한다.
리눅스에서 웹 서버 운영하려면 Apache HTTP 서버를 설치하면 된다. 리눅스에는 PHP라는 웹 프로그래밍 언어와 MySQL 데이터베이스 연계해서 사용하는데 이 조합을 LAMP(linux,apache,mysql,php)라고도 부른다.

Apache HTTP 서버와 PHP

아파치 웹 서버는 HTML 문서를 보여준다. 아파치 서버에서 PHP 문서가 해석할 수 있도록 장착된 것을 모듈이라 한다.
아파치에 PHP를 모듈로 장착하는 방법 2가지가 있다.
(1) 정적모듈: PHP가 아파치에 완전히 고정 => 속도 빠르지만 수정시 둘 다 다시 설치
(2) 동적모듈: DSO(dynamic shared object)라 하는데 사용자의 요청이 있을때 해당 프로세스에 포함되는 방식 => 자원의 효율성 up
=> 아파치 2.0 이후에는 오직 동적 모듈 방식인 DSO 방식으로만 컴파일해 설치한다.

아파치 2.x 정리
무료 공개 소프트웨어, 리눅스와 유닉스 모두 지원, 동적 모듈 방식(DSO), 멀티스레딩 지원, 하이브리드 웹 서버를 표방

Apache 2.x의 개요

아파치 1.3과 큰 차이점은 멀티스레딩을 지원한다. 1.3은 클라이언트 요청 하나에 하나의 프로세스가 담당했다.
2.x버전에는 스레드가 도입되어 스레드가 하나의 프로세스가 다수의 클라이언트 요청을 처리할 수 있게 하였다. => MPM(multi processing module)방식

MPM은 다양한 모듈을 제공하는데 현재 가장 많이 사용하는 2가지 방식
(1) prefork: 각 요청에 프로세스가 매핑된다. 부모 프로세스가 클라이언트 요청이 들어올 경우 대기하다가 자식 프로세스 생성 여부 등을 관리
(2) worker: 초기에 시작하는 프로세스 개수 지정, 페이지 요청 들어오면 스레드로 처리한다. 프로세스당 처리하는 스레드 개수 지정하고 초과하면 새로운 자식 프로세스를 생성한다.

기본 httpd 패키지 확인 및 설치

rpm -qi httpd로 웹 서버 패키지 Apache httpd 확인
yum install httpd 명령으로 패키지 설치

기본 httpd 패키지로 웹 서버 구현

[웹 서버 구축 절차]
(1) 아파치 웹 서버의 환경 설정 파일 /etc/httpd/conf/httpd.conf에 도메인이나 IP 주소 설정
(2) 웹 문서를 저장할 디렉터리 확인
필요에 따라 가상 도메인 설정
(3) 웹 문서 만들기
(4) 웹 데몬을 구동

/etc/httpd/conf/httpd.conf

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

이름역할
ServerName가장 먼저 설정해야 한다. 웹 서버의 도메인명이나 IP주소를 기입
도메인명:포트번호 형식
ServerName www.example.com:80
DocumentRoot웹 문서를 저장하는 디렉터리DocumentRoot "/var/www/html"
DirectoryRoot웹 문서 디렉터리에서 가장 먼저 인식되는 파일을 지정DirectoryRoot index.html
첫 페이지는 index.html

웹 페이지 확인

웹 문서가 저장되는 디렉터리 /var/www/html으로 이동해 vi 편집기로 index.html 문서를 만든다.

가상 도메인 설정

필수 작업은 아니다. 가상 도메인을 지정했거나 도메인 기반으로 실습하려면 /etc/hosts에 등록하면 된다.

웹 서버 시작 및 확인

웹 서버 시작하기 systemctl start httpd.service
웹 서버 동작과 관련 메시지 systemctl -l status httpd.service 오류 및 성공 관련 정보 자세히
ps aux | grep httpd 웹 서버 프로세스 확인
웹 서버 관련 설정 변경시 데몬 재시작 systemctl restart httpd.service
부팅시 웹 서버 활성화 systemctl enable httpd.service

웹 서버와 부가 서비스의 연동 설치

Apache, MySQL, PHP 연동 설치

Apache HTTP Server 설치

MySQL 설치

PHP 설치

PHP와의 연동 확인

Apache 2.4 디렉터리 구조

Apache 2.4 웹 서버 설정

httpd.conf 주요항목

httpd-userdir.conf

httpd-vhosts.conf

httpd-autoindex.conf

httpd-default.conf

httpd-info.conf

httpd-mpm.conf

httpd-multilang-errordoc.conf

httpd-manual.conf

httpd-languages.conf

Apache 웹 서버 실행

웹 서버 운영

간단한 웹 페이지 작성

개인 사용자 홈페이지 사용 설정

웹 서버 접근 통제

Apahe 사용자 인증

MySQL과 연동

간단한 방명록 설계를 통한 AMP 연동 구현

웹 페이지 및 SQL 질의를 이용한 연동 확인

기타 다른 서비스와의 연동

웹 서버 암호화


인증 관련 서비스

인증 관련 서비스의 이해

인증 관련 서버 관리

파일 관련 서비스

삼바 서버 관리

NFS 서버 관리

FTP 서버 관리

메일 관련 서비스

메일 관련 서비스의 이해

메일 서버 설치 및 활용

profile
nonstop sw developer

0개의 댓글