본 프로젝트는 C++ 기반으로 HTTP 1.1 버전의 통신을 지원하는 간단한 서버 프로그램을 제작하는 프로젝트입니다.
GNU make 사용해 make
make
configuration file .conf 확장자로 지정하여 conf 디렉토리에 작성 후, 아래와 같은 명령어로 실행
./webserv <Configuration-file-name>.conf
- host
- 접속 ip 지정
- port
- 접속 port 지정
- server_name
- 서버 이름 지정
- root
- root URL과 연결될 디렉토리 지정
- index
- root URL로 접속시 기본으로 연결될 index페이지 소스 지정
- client_max_body_size
- 클라이언트로부터 받을 body의 최대 사이즈 지정
- error_page
- 각 에러코드에 해당하는 페이지 소스 지정
- cgi_pass
- cgi 프로그램 지정
- location {}
- 특정 디렉토리로 리퀘스트가 들어왔을 경우 동작 지정
- autoindex <on/off>
- 오토인덱스 기능 켜기/끄기 (기본값: 끄기)
- allow_method
- 허용된 메소드 입력
- redirect
- 리다이렉션 페이지 지정
server {
host 127.0.0.1;
port 4242;
server_name webserv;
root /Users/userName/webserv/var;
index index.html;
client_max_body_size 1000000;
error_page 400 ../error_page/400.html;
error_page 404 ../error_page/404.html;
error_page 405 ../error_page/405.html;
cgi_pass .php /Users/userName/webserv/cgi/php-cgi;
cgi_pass .py /usr/local/bin/python3;
location /uploads/ {
autoindex on;
}
location /img {
allow_method GET POST;
}
location /redirect {
redirect https://google.com/;
}
}
본 과제는 브라우저와 서버간 HTTP통신이 정상적으로 작동하는지 확인하기 위해 테스트페이지와 기본 conf 파일을 제공합니다.
기본 conf파일에서는 root에 클론받은 디렉토리를 지정해 주어야 하며
테스트 파일은 /var 디렉토리 안에 구성되어있습니다.
서버 실행 이후 http://localhost:4242에 접속하여 브라우저와 서버간 통신을 테스트 해보실 수 있습니다.