320x100
320x100

Part 3. 네트워크 및 서비스의 활용

chapter 1. HTTP

 

주요 HTTP 요청 메소드

GET : 서버에서 자료를 가져오는 요청

POST : 서버에 정보를 저장하는 요청

HEAD : http헤더 정보만 가져오는 요청

PUT : 서버에 자료를 오릴 때 사용

DELETE : 사버의 자료를 삭제할 때 사용

 

 

/etc/hosts : 가상도메인 및 호스트명을 등록하기 위한 디렉터리

/etc/rc.d/init.d/httpd start

service httpd start : 웹 서버 시작

 

 

 

/etc/httpd/conf/httpd.conf : 아파치 웹서버 환경설정 파일

ServerToken OS # HTTP 서버 헤더에 제공되는 정보의 수준 지정. Prod ~ Full

ServerRoot “/etc/httpd” # 웹 서버가 설치된 디렉터리

PidFile run/httpd.pid # 아파치 웹 서버 동작시 root 권한으로 실행되는 아파치 PID저장 경로

Timeout 60 # 클라이언트 요청에 대한 타임아웃 값

KeepAlive On # 한 프로세스에 대한 지속적인 접속 허가 여부

MaxKeepAliveRequests 100 # 지속적인 접속 기간 동안 처리할 수 있는 요청 개수. 0=무한

KeepAliveTimeout 15 # 클라이언트가 설정된 상태에서 요청이 타임아웃 되는 시간

Listen 80 # 아파치 웹 서버의 포트번호

User apache

Group apache # 실행되는 httpd 데몬의 사용자 및 그룹권한

ServerAdmin 2mukee@mohaemookji.com # 서버 관리자의 이메일 주소

ServerName www.mohaemookji.com:80 # 웹 서버의 도메인 및 포트번호

UseCanonicalName Off # 아파치의 URL 생성시 서버이름 혹은 호스트이름 사용 여부 (Off=클라)

DocumentRoot “/ver/www/html” # 웹문서를 불러올 디렉터리

 

<Directory /> # 전체 디렉터리에 대한 기본 옵션 및 권한

Options FollowSymLinks # 디렉터리의 심볼릭 링크 사용 허용

AllowOverride None # 유저 인증 파일 미사용

</Directory>

 

<Directory “/var/www/html”> # /var/www/html 디렉터리에 대한 옵션

Options Indexes FollowSymLinks # 지정된 인덱스 파일이 없을 경우 해당 디렉터리 파일 목록 출력

AllowOverride None

Order Allow,Deny # 호스트 접근시 Allow 설정 확인후 deny설정확인

Allow from all # 모든 호스트의 접근 허용

</Directory>

 

 

 

Options 항목

NONE : 모든 접근 거부

ALL : MultiViews 옵션을 제외한 모든 옵션 부여 (기본 값)

includes : 서버측의 추가적인 정보를 제공

indexes : 지정된 파일이 없을 경우 디렉터리의 파일 목록 출력

FollowSymLinks : 디렉터리의 심볼릭 링크 사용 허용

ExecCGI : CGI 스크립트 실행 허용

IncludesNoEXEC : SSI는 허용하지만 exec명령과 CGI 스크립트 #include 불허

MultiViews : all 옵션시 지정된 목록의 multiviews 허용. 유사한 파일 이름을 찾아주는 기능.

 

 

AllowOverride 항목 (AcessFileName 지시자)

NONE : 유저 인증 파일 미사용

ALL : 지시자로 설정한 파일 사용 및 관련 지시자 사용

AuthConfig : 사용자 인증 지시자 사용 허용

FileInfo : 문서 유형 제어 지시자 사용 허용

Indexes : 디렉터리 인덱싱을 제어하는 지시자 사용 허용

Limit : 호스트 접근을 제어하는 지시자 사용 허용

Options : OptionsXBiHack와 같은 지시자 사용 허용

 

 

<IfModule mod_userdir.c> # 사용자 계정별 디렉터리 여부

UserDir disabled

UserDir public_html

</IfModule>

 

DirectoryIndex index.html # 가장 먼저 인식되는 인덱스 파일

AccessFileName .htaaccess # 각각 디렉터리 접근을 제어하는 정보를 가진 파일 지정

 

<IfModule prefork.c> # 클라이언트의 요청이 들어올 경우를 대비하여 자식 프로세스 생성

StartServers 8 # 웹 서버 가동시 처음에 실행시킬 프로세스의 수

MinSpareServers 5 # 최소로 유지해야 할 여분의 프로세스의 수

MaxSpareServer 20 # 최대로 제한 되어야할 여분의 프로세스의 수

ServerLimit 256 # 서버 동작 중에 처리할 수 있는 Max Client의 최대값

MaxClients 256 # 시작할 수 있는 최대 서버 프로세스의 수

MaxRequestsPerChild 4000 # 자식 프로세스가 소멸 전까지 처리할 수 있는 처리의 수. 0=무한

</IfModule>

 

<IfModule worker.c> # 초기에 시작하는 프로세스 수 지정 후 페이지 요청시 쓰레드로 처리

StartServers 4 # 웹 서버 가동시 처음에 실행시킬 프로세스의 수

MaxClients 300 # 동시에 접속 할 수 있는 클라이언트의 수

MinSpareThreads 25 # 최소로 유지해야 할 여분의 쓰레드의 수

MaxSpareThreads 75 # 최대로 제한 되어야할 여분의 쓰레드의 수

ThreadsPerChild 25 # 하나의 프로세스가 처리할 수 있는 최대 쓰레드의 수

MaxRequestsPerChild 0 # 자식 프로세스가 소멸 전까지 처리할 수 있는 처리의 수. 0=무한

</IfModule>

 

LoadModule ~~~_module modules/~~ # DSO(동적 모듈 / 필요할 때 요청되는 모듈)

 

 

 

 

httpd [option] 파일명 : 아파치 웹 데몬 실행

-t : http.conf

-f : 새로 설정한 conf 파일 있을 경우 해당 파일로 아파치 데몬 구동

-S : 설정 되어 있는 가상 호스트 출력

-l : 컴파일된 모듈에 대한 목록 출력

-k : httpd 데몬에 시그널 전송. stop, start, graceful, restart

 

 

service httpd command : /etc/rc.d/init.d/httpd 데몬 실행제어 스크립트를 이용한 제어

help : 간단한 도움말 출력

start : 아파치 데몬 시작

stop : 아파치 데몬 중지

restart : 아파치 데몬 재시작

configtest : httpd.conf 파일의 문법적 오류 검사

graceful : 웹 서버에 연결된 접속을 차단하지 않고 httpd.conf의 설정만 다시 읽어들임

status / fulstatus : 웹 서버의 상태 출력

 

 

 

웹 서버 접근 통제

<Directory “/home/ec2-user/web”>

Order Deny,Allow # 공백주의

Deny from All

Allow from 203.247.40

</Directory>

 

 

Apache 사용자 인증

1. htpasswd c /etc/password posein # 계정 생성 및 계정 파일 생성

 

2. httpd.conf 수정 # 파일에 인증할 디렉터리 관련 설정

<Directory “/usr/local/apache/htdocs/admin”>

AllowOverride AuthConfig

</Directory>

 

3. .htaccess 파일 생성 # 인증할 디렉터리에 관련정보를 저장한 .htaccess 파일 생성

vi /usr/local/apache/htdocs/admin/.htaccess

AuthType Basic # 인증형태. Basic 혹은 Digest

AuthName “Admin Login” # 웹 브라우저 인증창에 표시되는 메시지

AuthUserFile /etc/password # 사용자 계정 파일명

Require valid-user # 접속을 허가할 사용자 설정. valid-user=등록된 사용자 전부허가

# Require user posein yuloje=특정 사용자만 허가

 

 

 

htpasswd [option] 계정파일 사용자명 : 아파치 사용자 인증파일 생성 및 관리

-c : 사용자 계정파일 생성

 

 

300x250
728x90