들어가기전
웹서버란? HTTP요청을 읽어 응답해주는 프로그램
서버에 웹서버 포로그름을 설치하여 특정 HTTP요청에 맞는 서비스를 제공하는 방식으로 웹 서비스 작동
보통 apache 와 nginx가 존재, 여기서는 nginx에 대해서 다뤄볼 예정
Nginx 구동 방식
Event Driven 방식
- 하나의 프로세스내에서 동작하며, HTTP요청을 event로 생각하여 비동기 처리하는 방식
- HTTP 응답은 html파일을 반환하는 것 -> 요청과 응답은 결국 하나의 IO작업, 이러한 IO작업을 event로 포워딩하고 비동기 처리
- HTTP 요청마다 프로세스나 쓰레드를 생성할 필요가 없기 때문에 자원 관리에 용이
Nginx 설치
# 도커 컨테이너 생성 및 내부 bash 실행
docker run -dit -p 80:8080 --name testos ubuntu:20.04
docker exec -it testos /bin/bash
# 컨테이너 내부 shell에서
apt-get update
apt-get install nginx # 설치후 지역 설정 6 69
# vi 설치
apt-get install vim
nginx.conf
nginx 웹서버 기본 설정 파일
# nginx.conf 파일명이 있는 위치를 알려줌
find -name nginx.conf
크게 user, worker_processes, pid, events, http 항목으로 이루어져 있음
여기서 http블록이 전체 웹서버 기본 설정 항목
http 블록중 다음 항목으로 다양한 웹서비스를 별도 파일로 설정하는 것이 일반적인 방법
- /etc/nginx/conf.d/test.com.conf 형태로 웹서비스별 설정을 별도 파일로 할 수 있음
- http 항목 내부를 보면 include /etc/nginx/conf.d/*.conf 설정이 있기 때문에 가능
또한 두번째줄에서 /etc/nginx/sites-enabled폴더도 include되어 있는 것을 볼수 있다
해당 폴더는 /etc/nginx/sites-available 폴더의 심볼릭 링크 폴더
즉, sites-available 폴더에 파일을 작성해놓으면 자동으로 sites-enabled 폴더에 넣어진 것으로 취급하고
해당 파일들은 nginx.conf의 http항목의 include를 통해 웹서버 설정이 적용된다.
두가지 방법으로 설정할 수 있음
- 위에서 언급한 /etc/nginx/conf.d/test.com.conf 형태로 작성
- /etc/nginx/sites-available 폴더의 default라는 파일에 디폴트 웹서비스 설정을 하고 추가 웹서비스는 별도의 파일을 해당 폴더에 작성
default 파일 server설정
위에서 찾은 /etc/nginx/sites-available의 default 설정 파일에 대해 알아보자
- listen은 HTTP 요청을 받을 포트 설정, 80포트에 대해 default_server는 모든 웹 서버 요청을 받는다는 의미
- 두번째 listen은 IPv6포트 관련 설정이므로 패스
- 위에서 컨테이너 생성시 80:8080 설정을 통해 컨테이너 내부 8080포트로 요청을 받음 -> 8080으로 수정후 저장해야함
- server_name은 요청을 받을 도메인 이름 설정, 별도의 도메인이 없다면 기본 설정으로 두면 됨
- location은 기존 IP나 도메인 주소 이후에 /bolg와 같은 각각의 요청 경로에 맞는 처리를 위해서 사용
설정이 바뀌면 꼭 재시작해줄 것
service nginx restart
'Deploy' 카테고리의 다른 글
[Docker] EC2에 Docker를 이용한 SpringBoot서버 배포 (1) | 2023.12.17 |
---|---|
[Nginx] Nginx 리버스 프록시 (1) | 2023.12.06 |
[Docker] Docker Compose 사용법과 주요 명령 (1) | 2023.11.29 |