소개
Apache HTTP 서버는 세계에서 가장 널리 사용되는 웹 서버입니다.
아파치는 HTTP웹 서버입니다. 아파치는 많은 운영체제에서 운용할 수 있습니다. 예를 들면 BSD , 리눅스 등 Unix 계열 뿐만 아니라 우리가 사용하는 마이크로소프트 윈도우 등 여러 기종에서 사용이 가능
전제 조건
OS Ubuntu 20.04
sudo 권한이 있는 루트가 아닌 일반 사용자가 있어야 합니다.
iptables 즉 기본 방화벽을 활성화 해야합니다.
1단계 – 아파치 설치
Apache는 Ubuntu 저장소에서 사용할 수 있으므로 기존 패키지 관리 도구를 사용하여 설치할 수 있습니다.
sudo apt update
Apache2 패키지 를 설치
sudo apt install apache2
2단계 – 방화벽 설정
Apache를 테스트하기 전에 기본 웹 포트에 대한 외부 액세스를 허용하도록 방화벽 설정을 수정해야 합니다.
전제 조건의 지침을 따랐다고 가정하면 서버에 대한 액세스를 제한하도록 구성된 UFW 방화벽이 있어야 합니다.
설치하는 동안 Apache는 방화벽을 통해 Apache에 대한 액세스를 활성화하거나 비활성화하는 데 사용할 수 있는 몇 가지 애플리케이션 프로필을 제공하기 위해 UFW에 자체 등록합니다.
ufw 명령어로 list를 확인
sudo ufw app list
애플리케이션 프로필 목록 확인
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
출력에 표시된 대로 Apache에는 세 가지 프로필을 사용할 수 있습니다.
- Apache : 이 프로필은 80포트만 오픈
- Apache Full : 이 프로필은 포트 80 (일반, 암호화되지 않은 웹 트래픽)과 포트 443(TLS/SSL 암호화 트래픽)을 오픈
- Apache Secure : 이 프로필은 포트 443(TLS/SSL 암호화 트래픽)만 오픈
아직 서버에 SSL(443 포트)을 구성하지 않았기 때문에 포트 80 포트 트래픽만 허용하면 됩니다.
sudo ufw allow 'Apache'
다음을 입력하여 변경 사항을 확인할 수 있습니다.
sudo ufw status
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Apache 웹서버에 대한 엑세스를 허용하도록 활성화 완료.
다른 방법 : iptables 명령어 사용 / 80포트 ANY(전체) 오픈 허용
iptables -A INPUT -m state --state NEW -m tcp -p TCP --dport 80 -j ACCEPT
3단계 — 웹 서버 확인
설치 프로세스가 정상적으로 끝났다면 Apache 서버는 이미 가동되어 실행 중이어야 합니다.
서비스가 제대로 실행중인지 확인
sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 29435 (apache2)
Tasks: 55 (limit: 1137)
Memory: 8.0M
CGroup: /system.slice/apache2.service
├─29435 /usr/sbin/apache2 -k start
├─29437 /usr/sbin/apache2 -k start
└─29438 /usr/sbin/apache2 -k start
서비스가 성공적으로 시작되었습니다.
이제 아파치 페이지를 호출해 봅니다.
hostname -I
IP를 확인 할수 있습니다.
브라우저에서 서버의 IP를 아래와 같이 입력합니다.
http://your_server_ip
Ubuntu 20.04 Apache 기본 웹 페이지가 표시되면 정상적으로 설치 된것입니다.
4단계 – Apache 프로세스 관리하기
이제 아파치 웹 서버를 정상 실행했으므로 systemctl 을 사용하여 프로세스를 관리합니다.
웹 서버 중지
sudo systemctl stop apache2
웹 서버 시작
sudo systemctl start apache2
웹 서버 재시작
sudo systemctl restart apache2
웹 서버를 중지하지않고 환경 설정을 적용
sudo systemctl reload apache2
서버 부팅시 자동으로 실행되지 않게 설정
sudo systemctl disable apache2
서버 부팅 apache 서버가 자동으로 실행되게 설정
sudo systemctl enable apache2
5단계 – 가상 호스트 설정예
Apache 웹 서버를 사용할 때 가상 호스트 (Nginx의 서버 블록과 유사)를 사용하여 구성 세부 정보를 캡슐화하고 단일 서버에서 둘 이상의 도메인 서비스 할수 있습니다.
Apache에는 기본적으로 /var/www/html 디렉토리에서 문서를 제공하도록 구성된 하나의 서버 블록이 기본적으로 활성화되어 있습니다
먼저 가상 호스트 파일을 생성해야 합니다.
“/etc/apache2/sites-available/000-default.conf” 기본 구성 파일을 수정하는 대신
“/etc/apache2/sites-available/your_domain.conf” 형태로 신규 파일을 만들어 보겠습니다.
vi /etc/apache2/sites-available/your_domain.conf
서비스할 홈디렉토리 및 서비스 도메인을 입력 합니다.
/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
a2ensite 로 추가된 환경파일을 활성화해 보겠습니다 .
sudo a2ensite your_domain.conf
기본 사이트 비활성화 000-default.conf
sudo a2dissite 000-default.conf
추가된 환경설정 파일 오류 테스트
sudo apache2ctl configtest
아래와 같이 출려된다면 정상 입니다.
Output
Syntax OK
추가된 가상 호스트(신규도메인)를 실행 할려면 Apache를 다시 시작합니다.
sudo systemctl restart apache2
브라우저에서 http://your_domain 입력시 다음과 같이 표시되면 정상적으로 작동 하는것입니다.
6단계 – Apache 중요 환경파일 및 디렉토리
서버 구성
- /etc/apache2: Apache 구성 디렉토리. Apache 모든 구성 파일
- /etc/apache2/apache2.conf: 기본 Apache 구성 파일입니다. Apache 전역 구성 변경파일
- /etc/apache2/ports.conf: 이 파일은 Apache가 수신 대기할 포트를 지정합니다. 기본적으로 Apache는 SSL 기능을 제공하는 모듈이 활성화된 경우 포트 80에서 수신 대기하고 추가로 포트 443에서 수신 대기합니다.
- /etc/apache2/sites-available/: 사이트별 가상호스트를 저장할 수 있는 디렉토리. Apache는 디렉토리에 링크되지 않는 한 이 디렉토리에 있는 구성 파일을 사용하지 않습니다 sites-enabled. a2ensite일반적으로 모든 서버 블록 구성은 이 디렉터리에서 수행한 다음 명령 으로 다른 디렉터리에 연결하여 활성화합니다 .
- /etc/apache2/sites-enabled/: 활성화된 사이트별 가상 호스트가 저장되는 디렉터리입니다. 일반적으로 sites-available디렉토리 에 있는 구성 파일에 a2ensite. Apache는 완전한 구성을 컴파일하기 위해 시작하거나 다시 로드할 때 이 디렉토리에 있는 구성 파일과 링크를 읽습니다.
- /etc/apache2/conf-available/, : 이 디렉토리는 및 디렉토리와 /etc/apache2/conf-enabled/동일한 관계를 갖지만 가상 호스트에 속하지 않는 구성 조각을 저장하는 데 사용됩니다. 디렉토리 의 파일 은 명령 으로 활성화하고 명령으로 비활성화 할 수 있습니다 .sites-availablesites-enabledconf-availablea2enconfa2disconf
- /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: 이 디렉토리에는 각각 사용 가능한 모듈과 사용 가능한 모듈이 포함되어 있습니다. 로 끝나는 파일 .load에는 특정 모듈을 로드하기 위한 조각이 포함되어 있고 로 끝나는 파일 .conf에는 해당 모듈에 대한 구성이 포함되어 있습니다. 모듈은 a2enmod및 a2dismod명령을 사용하여 활성화 및 비활성화할 수 있습니다.
서버 로그
- /var/log/apache2/access.log: 웹 서버에 대한 모든 요청은 이 로그 파일에 기록됩니다.
- /var/log/apache2/error.log: 모든 오류는 이 파일에 기록됩니다. Apache 구성의 LogLevel 지시문은 오류 로그에 포함될 세부 정보의 정도를 지정합니다.
톰캣이란 ?
Tomcat이란 아파치 재단에서 만든 오픈 소스 WAS(Web Application Server)입니다. Tomcat은 Java Servlet과 JSP가 실행할 수 있는 환경을 제공하여 동적인 페이지를 생성합니다. 그리고 DB 연결 및 데이터 조작, 다른 응용프로그램들과 상호 작용이 가능합니다.
Apache Tomcat은 다양한 Java 기술을 실행할 수 있으며 JavaServer(JSP), JavaServlet 및 Java Expression 언어를 실행합니다.
[목차] Content
1단계 – APT Update
sudo apt update
2단계 – 저장소 Tomcat 확인
저장소에서 Tomcat 서버 패키지 확인.
sudo apt-cache search tomcat
3단계 – 톰캣 다운로드
tomcat9 패키지와 tomcat9 관리 패키지 다운로드 실행
sudo apt install tomcat9 tomcat9-admin
4단계 – Apache Tomcat 서버 설치
다운로드가 완료되면 Apache Tomcat 서버가 설치되고 자동으로 시작됩니다.
ss 명령어를 사용하여 톰캣 8080 기본 포트가 제대로 Listen 하고 있는지 확인합니다.
ss -ltn
5단계 – Tomcat 설정 변경
Ubuntu OS가 재부팅되면 Apache Tomcat 서버가 자동으로 시작되게 설정 합니다.
비활성화 할수도 있습니다.
sudo systemctl enable tomcat9.service
또는
sudo systemctl disable tomcat9.service
6단계 – 8080 포트 OS 방화벽 허용 설정
모든 출발지에서 Tomcat 서버 포트 8080 트래픽 허용
sudo ufw allow from any to any port 8080 proto tcp
7단계 – Tomcat 서버 테스트
이제 Tomcat 서버가 잘 작동하는지 테스트할 수 있습니다.
웹브라우저 -> http://127.0.0.1:8080
“It Works!” 라는 페이지가 표시되면 Tomcat이 정상 작동하는것입니다.
8단계 – 사용자 생성
Tomcat 서버에서 Web Application Manager에 대한 사용자를 생성해야 합니다.
Apache Tomcat 웹 응용 프로그램 관리자를 사용하려면 새 사용자 계정을 설정해야 합니다.
vi 에디터로 Tomcat 디렉토리에서 tomcat-users.xml 파일을 엽니다.
sudo vi /etc/tomcat9/tomcat-users.xml
9단계 – 태그가 지정된 행 추가
파일이 열리면 “<” 태그 위의 파일에서 태그가 아래 세 줄을 추가합니다.
여기에서 암호가 “pass”로 설정된 “tomcat”이라는 이름의 새 사용자가 생성되었습니다.
사용자 이름과 비밀번호를 대신하여 고유한 값으로 추가해야합니다.
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="pass" roles="admin-gui,manager-gui"/>
파일을 저장하고 닫습니다.
이제 관리자 응용 프로그램 영역에 액세스할 수 있습니다.
10단계 – Tomcat 재시작
sudo systemctl restart tomcat9
11단계 – Tomcat 관리자 페이지 접속
Tomcat 서버 관리자 페이지에 액세스하려면 웹 브라우저에서 아래와 같이 접속 합니다.
URL http://127.0.0.1:8080/manager/html
아래를 통하여 Apache Tomcat Software Download (아파치 톰캣 최신 버전)을 설치해 보시기 바랍니다.
https://tomcat.apache.org/download-10.cgi