[배포]

[배포] Nginx란?

쌈뽕코딩 2025. 4. 17. 21:29

Nginx (엔진엑스)란?

 

Nginx는 웹 서버와 리버스 프록시 서버로 매우 유명한 소프트웨어이다. 웹 서버는 우리가 인터넷에서 웹사이트를 볼 때 브라우저와 서버 간의 통로 역할을 하는 프로그램이다. 웹 서버는 웹사이트의 내용을 가져다 주거나, 사용자로부터 요청을 받아서 적절한 작업을 처리한다.

예를 들어, 우리가 "example.com"을 브라우저에 입력하면, Nginx는 브라우저의 요청을 받아서 그에 맞는 웹페이지를 보내주는 역할을 하고 있다. 


Nginx의 주요 역할

1️⃣ 웹 서버: 웹사이트 파일을 사용자에게 제공

 

  • 정적 파일 제공: Nginx는 웹페이지의 이미지, CSS, JavaScript 파일 등을 빠르게 제공하는 데 강점이 있다.
  • 예를 들어, 웹사이트에 있는 사진이나 스타일 시트(CSS)는 서버에서 빠르게 찾아서 브라우저에 보내주는 일을 한다.

2️⃣ 리버스 프록시: 서버 뒤에서 요청을 대신 처리

  • 리버스 프록시란, 사용자가 요청한 데이터를 다른 서버에 대신 전달하고, 그 응답을 다시 사용자에게 전달하는 역할을 한다.
  • 예를 들어, 웹사이트가 여러 대의 서버로 나뉘어 있으면, Nginx는 외부에서 오는 요청을 받아서 어떤 서버로 보낼지 정한다.
  • 이는 서버 간 트래픽을 분산시켜서, 서버 한 대에 부하가 몰리지 않도록 도와준다.

3️⃣ 로드 밸런서: 여러 서버에 트래픽 분산

  • 여러 서버가 있을 때, Nginx는 사용자가 보낸 요청을 여러 서버에 나누어 보내는 역할을 한다.
  • 예를 들어, 웹사이트가 10명의 방문자에게 응답해야 할 때, Nginx는 그 10명의 요청을 각각 다른 서버에 분배하여 각 서버의 부담을 덜어준다.

Nginx의 구조

Nginx는 설정 파일을 통해 어떻게 동작할지 설정할 수 있다. 설정 파일은 nginx.conf라는 파일에서 관리된다.

아래처럼 설정을 통해 웹 서버가 어떻게 작동할지 정의할 수 있다.

server {
    listen 80;
    server_name example.com;
    
    location / {
        root /var/www/html;
        index index.html;
    }
}
  • listen 80;: 80번 포트를 열어서 HTTP 요청을 받겠다는 설정.
  • server_name example.com;: example.com에 대한 요청을 이 서버가 처리하도록 설정.
  • location / {}: 웹사이트의 루트 경로로 요청이 들어오면, /var/www/html에 있는 index.html 파일을 반환.

출처: