Ubuntu에 Apache 설치하여 트래픽 관리하는 방법

고트래픽 요구를 처리할 오픈 소스 웹 서버를 찾고 있나요? Ubuntu에 Apache를 설치하여 완벽한 솔루션으로 사용하세요!

Apache는 가장 널리 사용되는 웹 서버로 대규모 트래픽을 쉽게 처리할 수 있습니다. 이 튜토리얼에서는 Ubuntu Linux 서버에 Apache를 설치하고 가상 호스트를 설정하는 방법을 배워보세요.

지금 Apache를 사용해보고 웹 서버 다운타임을 제거하세요!

전제 조건

이 튜토리얼은 실습으로 진행됩니다. 함께 따라하려면 다음 사항이 필요합니다.

  • Ubuntu 서버 – 이 튜토리얼은 Ubuntu 20.04를 사용합니다.
  • A user account with root privileges.

Ubuntu 서버에 Apache 설치하는 방법

Apache는 동적으로 로드 가능한 모듈, 다양한 구성 시스템 및 포괄적인 로깅 기능과 같은 강력한 기능을 제공합니다. 이러한 기능을 활용하려면 서버에 Apache를 설치해야 합니다.

기본적으로 Apache 패키지는 Ubuntu 저장소에서 사용할 수 있으며, apt 패키지 관리자를 사용하여 한 줄의 명령으로 Apache를 설치할 수 있습니다.

1. 아래의 apt update 명령을 실행하여 서버가 최신 상태이고 보안 패치가 적용되었는지 확인하세요.

sudo apt update -y
Updating Server Package Index

2. 시스템에서 사용 가능한 모든 Apache 패키지를 검색하고 나열하려면 아래 apt-cache 명령어를 실행하세요.

sudo apt-cache search apache2

아래 스크린샷에서 모든 Apache 패키지를 확인할 수 있으며, 가장 일반적인 패키지는 다음과 같습니다:

  • apache2 – Apache HTTP Server – 이 패키지는 표준 Apache 웹 서버입니다.
  • libapache2-mod-php – 이 패키지는 Apache 웹 서버에 대한 PHP 지원을 제공합니다.
  • apache2-ssl-dev – 이 패키지는 Apache에서 SSL/TLS 연결을 지원합니다.
  • apache2-utils – 이 패키지는 Apache 웹 서버에 대한 다양한 유틸리티를 제공합니다. 예를 들면 htpasswd를 사용하여 기본 인증을 위한 사용자를 생성하는 데 사용됩니다.
Listing Apache Packages

3. Apache를 서버에 설치하려면 다음 apt install 명령어를 실행하세요.

sudo apt install -y apache2
Installing Apache

4. 한 번 패키지가 설치되면 아래의 systemctl 명령을 실행하여 Apache(apache2)를 start합니다. 이 명령에는 출력이 없지만, 다음 단계에서 Apache 서비스 상태를 확인할 것입니다.

sudo systemctl start apache2

5. 이제 Ubuntu의 기본 설치는 자동으로 Apache 서비스를 시작하지 않으므로 부팅 시 Apache를 시작하도록 Apache를 enable하는 다음 명령을 실행합니다.

sudo systemctl enable apache2
Enabling Apache Auto-Start on Boot Up

6. 그다음 아래의 systemctl 명령을 실행하여 Apache(apache2) 서비스의 status를 확인합니다.

sudo systemctl status apache2

다음 출력이 표시됩니다. 활성화된(active) (실행 중인) 상태는 Apache 서비스가 예상대로 시작되고 실행 중임을 나타냅니다.

Check the status of the Apache service.

7. 서버에 설치된 Apache의 버전을 확인하려면 아래 명령을 실행합니다.

apache2 -version

이 작성 시점에서 가장 최신의 안정적인 Apache 버전은 2.4.41이며, 사용 중인 버전은 달라질 수 있습니다.

Checking Installed Apache Version

8. 마지막으로, 좋아하는 웹 브라우저를 열고 Ubuntu 서버의 IP 주소 또는 호스트 이름(예: 192.168.1.100)로 이동합니다.

아래에서는 설치 과정 중에 생성된 기본 Apache 웹 페이지를 확인할 수 있습니다. 이 페이지는 Apache가 설치되어 예상대로 작동하고 있음을 확인합니다.

어떤 이유로든 오류가 발생한 경우, 다음 섹션으로 건너뛰어 방화벽을 구성하세요.

Verifying Apache Installation by Accessing Apache’s Default Page

UFW 방화벽 구성하여 Apache 서버 보호

이전 섹션에서는 Apache 서버에서 웹 페이지를 요청했으며, 기본 Apache 웹 페이지가 표시되었습니다. 그러나 아래와 같이 “연결 거부” 오류가 발생한 경우는 어떻게 해야 할까요? 이 오류는 방화벽이 Apache 서버에 대한 액세스를 막아서 발생할 수 있습니다.

Getting Connection Refused Error

이 연결 오류를 해결하기 위해 방화벽을 구성하여 Apache 서버에 대한 액세스를 허용할 것입니다. 그리고 기본 Ubuntu 설치에는 서버의 무단 액세스로부터 보호하기 위해 UFW라는 방화벽이 포함되어 있습니다.

1. 다음 명령을 실행하여 UFW에 포함된 모든 애플리케이션 프로필을 나열합니다.

sudo ufw app list

다음은 UFW에서 사용 가능한 다른 애플리케이션을 볼 수 있습니다:

  • Apache Full – 이 프로필은 Apache 웹 서버에 필요한 모든 포트 범위에 대한 액세스를 허용합니다 (포트 80과 443).
  • Apache – 액세스가 보안되지 않은 포트 80에 허용되는 기본 프로필입니다.

이 프로필은 보안이 덜한 환경에서는 사용하지 않아야 합니다.

  • Apache Secure – 이 프로필은 TLS/SSL 암호화 트래픽을 위한 포트 (포트 443)에 대한 액세스만 허용하여 더욱 안전합니다.
  • OpenSSH – 이 프로필은 SSH 포트 (포트 22)에 대한 액세스를 허용하여 SSH 연결을 허용합니다.
Listing Application Profiles Available in UFW

2. 다음 명령을 실행하여 Apache Full 프로필과 SSH를 활성화(allow)합니다.

이러한 명령어는 모든 포트에 액세스할 수 있도록 허용하므로 개발 환경에서 유용합니다.

sudo ufw allow 'Apache Full'
sudo ufw allow 'OpenSSH'
Enabling the Apache Full Profile along with SSH

어떤 응용 프로그램을 비활성화하려면 다음과 같이 allow 옵션을 disable 옵션으로 변경하는 것이 좋습니다. sudo ufw disable ‘app_profile’

3. 아래의 ufw status 명령을 실행하여 UFW 방화벽의 상태를 확인합니다.

sudo ufw status verbose

아래에서는 Anywhere에서 Apache Full 및 OpenSSH에 액세스할 수 있다는 방화벽 규칙이 있음을 볼 수 있습니다.

Checking UFW Firewall Status

4. 마지막으로 웹 브라우저를 열고 Apache 서버에서 웹 페이지를 요청해 보십시오. 이번에는 설치 과정 중에 생성된 기본 Apache 웹 페이지가 표시됩니다.

Verifying Apache Installation by Accessing Apache’s Default Page

웹 사이트 제공을 위한 가상 호스트 설정

Apache 서버가 가동되었으므로 가장 흥미로운 부분, 즉 웹 애플리케이션을 호스팅하는 것이 시간입니다. 어떻게 할까요? Ubuntu 서버에서 가상 호스트를 설정하게 될 것입니다. 가상 호스트는 단일 IP 주소로 단일 서버에서 여러 웹 사이트를 호스팅할 수 있도록 해주는 구성 파일입니다.

이 튜토리얼의 이 시점부터 파일 및 디렉토리를 생성하려면 sudo 액세스 권한이 필요합니다.

가상 호스트 설정을 시작하려면:

1. 아래 명령을 실행하여 /var/www/example.com이라는 새 디렉토리를 만듭니다. 이 디렉토리를 사용하여 웹 사이트의 콘텐츠를 저장합니다. 실제 사용하려는 도메인 이름으로 example.com을(를) 대체하십시오.

이 명령에는 출력이 없지만 다음 명령을 실행하여 디렉토리를 확인할 수 있습니다: ls /var/www

sudo mkdir -p /var/www/example.com

2. 다음으로, 아래의 chown 명령을 실행하여 /var/www/example.com 디렉토리의 소유권을 사용자 계정으로 변경하십시오. 이 명령에는 출력이 없지만 웹 사이트의 콘텐츠를 관리할 수 있습니다.

sudo chown -R $USER:$USER /var/www/example.com

3. 아래의 chmod 명령을 실행하여 /var/www/example.com 디렉토리의 권한을 755로 변경하십시오. 이 명령에는 출력이 없지만 사용자 계정에 웹 사이트 콘텐츠의 읽기 및 쓰기 액세스 권한이 부여됩니다.

sudo chmod -R 755 /var/www/example.com

4. 이제 선호하는 편집기로 index.html이라는 파일을 /var/www/example.com 디렉토리에 생성하십시오. 파일을 아래 코드로 채우고 변경 사항을 저장한 다음 파일을 닫으십시오. index.html 파일은 웹 사이트의 기본 페이지로 작동합니다.

아래 코드는 Hello World! Your virtual host is working! 텍스트를 표시하는 간단한 웹 페이지를 생성합니다.

<html>
  <head>
    <title>Welcome to example.com!</title>
  </head>

  <body>
    <h1>Hello World! Your virtual host is working!</h1>
  </body>
</html>

5. example.com.conf라는 새 가상 호스트 구성 파일을 /etc/apache2/sites-available 디렉토리에 생성하십시오.

새 가상 호스트를 포함하는 기본 /etc/apache2/sites-available/000-default.conf 파일을 편집할 수 있습니다. 하지만 웹사이트를 위한 새 파일을 만드는 것이 더 나은 아이디어입니다. 이 동작은 구성 파일을 조직화하는 데 도움이 됩니다.

아래 구성을 example.com.conf 파일에 복사/붙여넣기하세요. 그러나 example.com과 webmaster@localhost를 실제 웹사이트 값으로 교체해야 합니다.

변경 사항을 저장하고 파일을 닫으세요.

<VirtualHost *:80>

  ServerAdmin webmaster@localhost

  ServerName example.com

  ServerAlias www.example.com

  DocumentRoot /var/www/example.com

  ErrorLog ${APACHE_LOG_DIR}/error.log

  CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

6. 이제 아래 명령어를 실행하여 기본 가상 호스트 파일을 비활성화하고 새 가상 호스트 파일을 활성화하세요.

기본 가상 호스트 파일은 기본적으로 활성화되어 있으며, 기본 가상 호스트 파일을 비활성화하지 않으면 새 가상 호스트 파일을 사용할 수 없습니다.

# 기본 가상 호스트 파일 비활성화
sudo a2dissite 000-default
# 가상 호스트 파일 활성화
sudo a2ensite example.com.conf
Disabling the Default Virtual Host File and Enabling your New Virtual Host

7. 변경 사항을 적용하기 위해 아래 서비스 명령을 실행하여 Apache 서버(apache2)를 재시작하세요.

sudo service apache2 restart

8. 마지막으로 웹 브라우저를 열고 웹사이트(example.com)로 이동하세요.

Apache 서버 구성이 올바른 경우 웹 브라우저에서 아래 메시지가 표시됩니다.

Accessing the Hosted Website

결론

이 자습서에서는 Ubuntu에 Apache를 설치하고 가상 호스트를 설정하여 단일 서버에서 웹 사이트를 제공하는 방법을 배웠습니다. 이 시점에서 Ubuntu 서버에서 여러 웹 사이트를 효과적으로 호스팅할 수 있습니다.

이 자습서는 입문서로 작용하며, Apache를 더 깊이 파고들고 다른 기능을 구성할 수 있습니다. 아파치 서버를 보호하기 위해 SSL을 사용한 가상 호스트 및 암호 보호를 설정해 보는 것은 어떨까요? 또는 사용자 요청을 제어하기 위해 웹 사이트에 사용자 정의 헤더를 추가해 보는 것은 어떨까요?

Source:
https://adamtheautomator.com/install-apache-on-ubuntu/