Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

과거의 내가 미래의 나에게

웹 서버 학습 (3) - Nginx 설치 본문

카테고리 없음

웹 서버 학습 (3) - Nginx 설치

양바삭 2024. 11. 10. 03:02

6월에 웹 서버에 대한 정의와 Nginx가 무엇인지 살펴보고 멈췄었는데...오늘은 그것에 이어서 Nginx를 직접 설치해보고 기본 구성정도만 알아보려한다.

웹 서버는 일반적으로 백엔드 직군이나 데브옵스를 다루는 개발자가 많이들 하지만... 웹 서버는 결국 브라우저와 서버를 이어주는 통로와도 같기에 프론트 개발자도 웹 서버 관련해서 알아둬야 할 부분이라 생각했다. 꾸준히 공부해서 회사에서 nginx를 설계하는 역할을 가져가봐야지! 

 

 

 

Nginx 설치하기

1. 패키지 업데이트

sudo apt update
sudo apt upgrade

설치하려보니 다들 Nginx 설치 전에 위와 같은 코드를 꼭 쓰던데, 우분투와 같은 데비안 계열 리눅스 배포판에서는 무언가를 설치하기 전에 패키지(운영체제 전체에서 필요로 하는 모든 소프트웨어) 목록을 최신 상태로 업데이트 하는 명령어이다. 

update는 패키지 목록을 업데이트하는 명령어로, 패키지들의 최신 버전이 무엇인지 정보를 가져오고 이를 최신 상태로 갱신하는 것이다. 이 목록은 이름과 버전 정보만 포함하기에 실제 파일을 다운로드하거나 그러진 않는다.

그리고 실제로 다운로드 하는 것이 upgrade다. update로 최신으로 갱신된 패키지 목록에 따라 실제로 최신 버젼으로 업데이트한다.

그런데 어떠한 패키지는 특별한 사정에 의해 특정 버젼만을 사용해야하는 경우가 분명 있을텐데... 그런 경우를 생각한다면 해당 서버를 다루는 사람한테 업데이트 해도 되는지 한 번 물어보는 것이 나으려나? 참고로 곁다리로 본 건데 만약 내가 설치하는 패키지가 절대 업데이트가 되어선 안된다면 설치할 때 "sudo apt-mark hold 패키지"로써 해당 패키지가 업데이트 되는 것을 막아놓는 수가 있다고 한다.

 

2. nginx 설치 및 확인

// nginx 설치
sudo apt install nginx

// nginx 실행
sudo systemctl start nginx

// nginx가 실행중인지 확인
sudo systemctl status nginx

위의 과정을 거친 후, 본인 IP를 브라우저에 쳐보면 nginx가 잘 작동되고 있다는 것을 확인할 수 있다.

참고로 nginx를 실행한 후에는 서버가 부팅될 때 자동으로 실행되므로 만약 이를 원치 않으면 " sudo systemctl stop nginx" 명령어로 nginx를 종료하거나 혹은 "sudo systemctl disable nginx" 명령어로 자동 실행을 비활성화 해놓으면 된다고 한다.

 

 

nginx 주요 파일

nginx에서 자주 다루게되는 파일들이 있을텐데, 나는 이제 막 학습중인터라 뭐가 중헌지 잘 모르니 GPT에게 물어본 것을 기반으로 하여 정리해보도록 하겠다. 

 

1. 메인 설정 파일: /etc/nginx/nginx.conf nginx

nginx의 전반적인 설정을 관리하는 파일이다. nginx의 전역적인 설정을 관리하는 파일이다. nginx.conf에는 다양한 블록 지시어가 있는데 이에 대해 자주 쓰이는 것을 기준으로 이론적인 설명을 간단하게만 서술해놓겠다. 실제 사용은 천천히 익히는 것으로..

  1) main 블록

nginx.conf의 최상위 레벨 블록으로 전역 설정을 정의한다. user, worker_processes 등이 여기에 포함되고 해당 파일의 최상단에 위치한다.

  2) events 블록

nginx의 네트워크 이벤트 처리와 관련된 설정을 정의한다. 주요 설정으로는 worker_connections가 있는데 이는 각 워커 프로세스가 처리할 수 있는 최대 연결 수를 뜻한다 한다. 

  3) http 블록

http 서버와 관련된 설정으로 웹 서버의 정수같은 역할이 아닌가 싶다. 이 블록에서 server 블록, location 블록 등이 포함된다. 

  4) server 블록

개별 서버 설정을 정의하며 특정 호스트나 사이트와 관련된 설정을 포함한다. 

  5) location 블록

server 블록 내에서 특정 URL 경로나 패턴에 따른 요청 처리를 정의한다. 

 

2. 사이트 설정 파일: /etc/nginx/sites-available

개별 사이트 설정 파일을 저장하는 곳이다. default 파일이 기본 설정으로 들어가있고 각 사이트(도메인이나 IP주소 같은)마다 별도의 설정 파일을 만들 수 있다. 이 부분을 제일 많이 봐야할 것 같다. 

 

3. 사이트 활성화 파일: /etc/nginx/sites-enabled

sites-available에 있는 설정 파일을 가리키는 심볼릭 링크(바로가기 같은거)가 들어있는 곳이다. nginx는 이 폴더에 있는 링크를 통해 sites-available에 있는 파일들을 읽어 온다. nginx는 sites-enabled에 있는 링크의 설정 파일만 활성화된 것으로 인식하므로, 만약 설정 파일을 지우지 않고 비활성화를 원한다면 sites-enabled에서 해당 링크를 삭제하면 된다.  

 

4. 기본 문서 루트: /var/www/html

웹 페이지의 기본 루트이다. index.html을 이곳에 저장하면 nginx를 통해 해당 페이지가 브라우저에 표출된다.

 

5. 로그 파일: /var/log/nginx 

접속 로그나 에러 로그 같은 로그 파일들이 저장되는 곳이다. 

 

 

 

오늘과 같이 이론적인 것만 주렁주렁 매단건 사실 큰 의미는 없지만... 오늘 공부의 의의는 전반적으로 nginx에서 뭘 공부하고 해봐야하느냐의 길을 튼 것으로 생각한다. 이제 하나하나 직접 해보면서 파야지~

 

 


참고 문서

 

 

 

 

 

Comments