42Seoul/웹서버

    CGI 스크립트의 환경변수

    참고 1: 위키백과 - CGI 참고 2: IBM Documentation CGI 란? 공용 게이트웨이 인터페이스(Common Gateway Interface; CGI)는 웹 서버 상에서 사용자 프로그램을 동작시키기 위해, 데이터를 주고받는 방식 또는 규약입니다. 우리는 동적인 웹 서버를 구현하기 위해, 서버에서 외부 프로그램을 불러내고 그 처리 결과를 클라이언트에 송신합니다. CGI 스크립트의 환경 변수 CGI를 실행할 때 서버와 브라우저는 각자의 환경변수를 교환하며, 이는 대부분 서버에서 전달된 요청에 대한 데이터를 나타냅니다. 우리가 구현할 CGI에서는 다음과 같은 환경변수를 설정하여 전달합니다. 변수 설명 디폴트 AUTH_TYPE 인증 방법(BASIC, SSL 등). null (인증되지 않음) CO..

    HTTP 헤더에 따른 콘텐츠 협상 (Content negotiation)

    참고: MDN - Content negotiation 1. 콘텐츠 협상이란? 클라이언트가 URL로 특정 리소스(문서)를 요청하면, 서버는 콘텐츠 협상(Content negotiation)을 통해 가장 적절한 프레젠테이션(리소스 버전)을 제공합니다. 예를 들어, 영미권에서는 영어로 된, 한국에서는 한글로 된 프레젠테이션을 볼 수 있도록, 적절한 리소스 버전을 골라내는 것도 콘텐츠 협상에 해당합니다. 콘텐츠 협상에는 여러 방법이 있으나, 여기서는 클라이언트 Request의 HTTP 헤더에 따른 방법만 살펴보겠습니다. 2. HTTP Request 헤더에 따른 콘텐츠 협상 헤더 헤더 설명 Accept 클라이언트가 처리하고자 하는 미디어 리소스 타입(MIME 타입) Accept-Charset 클라이언트가 이해할 ..

    docker run시 컨테이너 내의 파일 수정하기(환경변수 + sed명령어)

    이전에 작성한 글에서 컨테이너에 환경변수를 선언하고 사용하는 법은 간단하게 설명하였습니다. 이번에는 환경변수와 sed -i명령어를 활용하여, docker run시 설정한 환경변수 값에 따라, 컨테이너에 위치할 파일의 내용을 수정해 보겠습니다. 이를 응용하면, nginx의 default 파일 내용을 환경변수 값에 따라 수정하여, nginx의 설정을 변경하는 것과 같은 작업도 할 수 있습니다. sed 명령어 sed 명령어는 다음과 같이 사용할 수 있습니다. -i 옵션을 주지 않을 경우, 실제 파일의 내용은 수정되지 않습니다. sed -i "s/찾을 문자열/바꿀 문자열/" 파일경로 파일 수정 예제 환경변수 HELLO의 옵션에 따라, hello.txt의 내용을 변경하는 예제를 작성해보았습니다. srcs/hell..

    도커에서 nginx + php-fpm 설치하기

    nginx란? nginx는 아파치와 같은 웹서버로, 아파치에 비해서 동시접속 처리에 유리합니다. 그러나 아파치의 경우 다양한 모듈을 활용할 수 있어, php 모듈도 직접 적재할 수 있는데, 이에 비해 nginx는 모듈이 많지 않다고 합니다. nginx와 php-fpm을 함께 사용하는 이유 php-fpm은 FastCGI의 하나로, 웹서버와 외부 프로그램의 상호작용을 도와주는 프로토콜입니다. php-fpm을 이용하면 동적인 웹 페이지를 구현할 수 있습니다. nginx의 경우, 아파치와는 다르게 따로 php-fpm을 설치하고 연동시키는 과정이 필요합니다. 도커에서 nginx와 php-fpm 연동하기 debian:buster를 기반으로 진행합니다. docker run -it -p 80:80 debian:bust..

    Dockerfile을 작성하고 Docker 실행하기

    Dockerfile이란? 이미지를 생성하기 위한 스크립트. docker build 명령어를 통해 이미지를 생성할 수 있습니다. Dockerfile 명령어 FROM 기반이 될 이미지(ex. OS)를 지정 FROM MAINTAINER 작성자의 정보를 기록 MAINTAINER RUN FROM의 기반 이미지 위에서 실행될 명령어 RUN COPY 도커 컨테이너의 경로로 파일을 복사합니다 COPY CMD 컨테이너 시작 이후, 컨테이너에서 실행될 파일 CMD ... ENV 도커의 환경변수를 설정 ENV EXPOSE 연결할 포트 번호를 명시 EXPOSE ... Dockerfile 작성 예시 debian:buster를 기반 이미지로 하고 nginx를 설치하는 도커파일의 예시입니다. 여기서 apt-get 명령어에 -y 옵..