우분투 웹 서버 설정

웹 개발을 위해서는 웹 서버의 설치와 설정이 필수적입니다. 이번 글에서는 우분투(Ubuntu) 운영체제에서 웹 서버를 설치하고 설정하는 방법에 대해 알아보겠습니다.

1. 웹 서버 소프트웨어 설치

서버 구동에 가장 많이 사용되는 웹 서버 소프트웨어는 아파치(Apache)NGINX입니다. 이 중에서도 아파치는 더욱 흔하게 사용되고, NGINX는 더욱 가볍고 빠르게 동작한다는 특징이 있습니다.

아파치(Apache) 설치

sudo apt update
sudo apt install apache2

NGINX 설치

sudo apt update
sudo apt install nginx

2. 방화벽 설정

웹 서버를 통해 외부에서 접근하기 위해서는 포트를 열어야 합니다. 우분투에서는 ufw라는 방화벽 설정 도구를 제공하고 있습니다.

sudo ufw allow 80      # HTTP 접근 허용
sudo ufw allow 443     # HTTPS 접근 허용
sudo ufw enable        # 방화벽 활성화

3. 웹 서버 설정 파일 변경

만약 아파치(Apache)를 사용한다면, 설정 파일은 /etc/apache2/apache2.conf에 위치해 있습니다. NGINX의 경우, /etc/nginx/nginx.conf에 위치해 있습니다.

웹 서버의 설정을 변경하기 위해서는 root 권한이 필요합니다. 따라서 텍스트 편집기를 사용하여 설정 파일을 열 때 sudo를 사용해야 합니다.

sudo nano /etc/apache2/apache2.conf     # 아파치(Apache) 설정 파일 열기
sudo nano /etc/nginx/nginx.conf         # NGINX 설정 파일 열기

4. 가상 호스트(Virtual Host) 설정

여러 개의 도메인을 하나의 서버에서 호스팅하고자 할 때에는 가상 호스트(Virtual Host) 설정이 필요합니다. 이를 통해 각 도메인마다 별도의 웹 사이트를 관리할 수 있습니다.

아파치(Apache) 가상 호스트 설정

  1. 아파치(Apache) 설정 파일인 /etc/apache2/apache2.conf에서 다음 내용을 추가합니다.
Include /etc/apache2/sites-available/*.conf
  1. /etc/apache2/sites-available 디렉토리에 새로운 가상 호스트 설정 파일을 생성합니다.
sudo nano /etc/apache2/sites-available/example.com.conf
  1. 가상 호스트 설정 파일에 다음 내용을 작성합니다.
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. 저장한 후, 가상 호스트를 활성화합니다.
sudo a2ensite example.com.conf
sudo systemctl restart apache2

NGINX 가상 호스트 설정

  1. NGINX 설정 파일인 /etc/nginx/nginx.conf에서 다음 내용을 추가합니다.
http {
    ...
    include /etc/nginx/sites-enabled/*;
}
  1. /etc/nginx/sites-available 디렉토리에 새로운 가상 호스트 설정 파일을 생성합니다.
sudo nano /etc/nginx/sites-available/example.com
  1. 가상 호스트 설정 파일에 다음 내용을 작성합니다.
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    access_log /var/log/nginx/example.com-access.log;
    error_log /var/log/nginx/example.com-error.log;

    location / {
        index index.html;
    }
}
  1. 저장한 후, 가상 호스트를 활성화합니다.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx

5. 웹 서버 재시작

설정을 변경한 후에는 웹 서버를 재시작하여 변경된 설정을 적용해야 합니다.

아파치(Apache) 재시작

sudo systemctl restart apache2

NGINX 재시작

sudo systemctl restart nginx

이제 웹 서버가 성공적으로 설치되고 설정되었습니다. 이제 웹 서버를 통해 웹 사이트를 호스팅하고 개발할 준비가 되었습니다. 웹 개발 과정에서 필요한 서버 관리를 손쉽게 할 수 있으며, 인터넷 상에서 웹 사이트에 액세스할 수 있습니다.