3.웹 서버 구축하기, Apache와 Nginx 설치 및 설정 방법

3. 웹 서버 구축하기, Apache와 Nginx 설치 및 설정 방법

웹 서버는 웹 페이지를 클라이언트(사용자)의 요청에 따라 전송하는 소프트웨어입니다. 두 가지 가장 많이 사용되는 웹 서버는 Apache와 Nginx입니다. 각각의 특성과 설치 방법에 대해 자세히 설명하겠습니다.

3.1 웹 서버란?

웹 서버는 클라이언트가 웹 브라우저를 통해 요청한 데이터를 제공하는 역할을 합니다. 클라이언트가 특정 URL에 접근하면 그 요청을 담당하는 서버가 응답하여 필요한 HTML, CSS, JavaScript 파일 또는 이미지 등을 반환합니다. 웹 서버는 HTTP 프로토콜을 기반으로 동작하며, 요청과 응답의 형식은 특정 규칙을 따릅니다.

3.2 Apache 웹 서버 설치하기

Apache는 가장 널리 사용되는 웹 서버 중 하나이며, 안정성과 모듈성을 자랑합니다. Apache를 설치하고 설정하는 과정은 다음과 같습니다.

3.2.1 Apache 설치

sudo apt update
sudo apt install apache2

위 명령어로 Apache를 설치한 후, 설치가 완료되면 서비스가 자동으로 시작됩니다. 상태를 확인하려면 다음 명령어를 사용합니다:

sudo systemctl status apache2

3.2.2 방화벽 설정

서버가 외부의 요청을 받을 수 있도록 방화벽을 설정해야 합니다.

sudo ufw allow 'Apache'

이제 브라우저에서 서버의 IP 주소를 입력하면 Apache의 기본 페이지를 확인할 수 있습니다.

3.2.3 Apache 설정 파일 수정

Apache의 메인 설정 파일은 /etc/apache2/apache2.conf입니다. 이 파일을 수정하여 서버의 동작 방식을 조정할 수 있습니다. 또한 가상 호스트 설정을 통해 여러 도메인을 관리할 수 있습니다.

예를 들어, 새로운 가상 호스트를 추가하려면 /etc/apache2/sites-available/ 디렉토리 내에 새로운 파일을 생성합니다:

sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

이후 해당 사이트를 활성화하고 Apache를 재시작합니다:

sudo a2ensite example.com.conf
sudo systemctl restart apache2

3.3 Nginx 웹 서버 설치하기

Nginx는 Apache에 비해 더 높은 성능과 적은 자원 소모를 자랑하는 웹 서버입니다. Nginx를 설치하는 방법도 살펴보겠습니다.

3.3.1 Nginx 설치

sudo apt update
sudo apt install nginx

Nginx 설치 후에는 서비스가 자동으로 시작됩니다. 상태 확인은 다음 명령어로 가능합니다:

sudo systemctl status nginx

3.3.2 방화벽 설정

Nginx도 Apache와 동일하게 방화벽 설정을 통해 외부의 접근을 허용해야 합니다:

sudo ufw allow 'Nginx Full'

브라우저를 통해 서버의 IP 주소를 입력하면 Nginx의 기본 페이지를 확인할 수 있습니다.

3.3.3 Nginx 설정 파일 수정

Nginx의 주요 설정 파일은 /etc/nginx/nginx.conf이며, 가상 호스트 설정은 /etc/nginx/sites-available/ 디렉토리에서 관리됩니다. 새로운 가상 호스트를 추가하는 방법은 다음과 같습니다:

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    server_name example.com;
    root /var/www/example;

    location / {
        try_files $uri $uri/ =404;
    }
}

가상 호스트를 활성화하려면 심볼릭 링크를 생성하고 Nginx를 재시작합니다:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx

3.4 Apache와 Nginx 비교

Apache와 Nginx는 각기 다른 장단점을 가지고 있습니다. Apache는 모듈화가 우수하고 .htaccess 파일을 지원하여 사용자 정의가 용이하지만, 많은 수의 요청을 처리할 때 CPU 자원의 소모가 많습니다. 반면 Nginx는 비동기 이벤트 기반 아키텍처를 사용하여 높은 성능과 가벼운 부담을 자랑합니다. 따라서 정적 파일 서빙과 높은 동접 수를 필요로 하는 경우 Nginx를 추천합니다.

3.5 결론

이 글에서는 Apache와 Nginx의 설치 및 설정 방법에 대해 알아보았습니다. 두 웹 서버 모두 각자 특성과 장단점이 있으므로 필요에 따라 적절한 서버를 선택하여 사용하는 것이 중요합니다. 웹 서버의 설치 및 설정은 사이트의 성능과 안정성에 큰 영향을 미치므로 주의하여 진행해야 합니다.