우분투 18.04에 아파치 웹 서버 설치와 가상 호스트 설정
아래 글을 따라하려면 자바와 톰캣이 설치되어 있어야 한다.
아파치 설치
sudo apt update
sudo apt install apache2
http://localhost를 방문해 아파치가 동작하는지 확인한다.
가상 호스트 설정
java-school.net를 위한 디렉터리를 생성한다.
sudo mkdir -p /var/www/java-school.net/html
생성한 디렉터리의 소유권을 지정한다.
sudo chown -R $USER:$USER /var/www/java-school.net/html
테스트를 위한 index.html 파일을 생성한다.
sudo nano /var/www/java-school.net/html/index.html
<html> <body> Welcome to java-school.net </body> </html>
새 가상 호스트 파일을 생성한다.
sudo nano /etc/apache2/sites-available/java-school.net.conf
<VirtualHost 127.0.0.1> ServerAdmin javaschool@gmail.org ServerName java-school.net ServerAlias www.java-school.net DocumentRoot /var/www/java-school.net/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
a2ensite로 파일을 활성화한다.
sudo a2ensite java-school.net.conf
디폴트 사이트를 비활성화시킨다.
sudo a2dissite 000-default.conf
아파치를 다시 시작한다.
sudo service apache2 restart
http://127.0.0.1을 방문해 index.html 파일 내용을 볼 수 있는지 확인한다.
Tomcat Connector 설치
sudo apt install libapache2-mod-jk
workers.properties 파일을 열고 workers.tomcat_home과 workers.java_home을 수정한다. tomcat_home은 tomcat9을 apt install로 설치하면 /etc/tomcat9다. java_home은 mvn -v 이나 sudo update-alternatives --config java 명령으로 확인할 수 있다.
sudo nano /etc/libapache2-mod-jk/workers.properties
# # workers.tomcat_home should point to the location where you # installed tomcat. This is where you have your conf, webapps and lib # directories. # workers.tomcat_home=/etc/tomcat9 # # workers.java_home should point to your Java installation. Normally # you should have a bin and lib directories beneath it. # workers.java_home=/usr/lib/jvm/java-11-openjdk-amd64
가상 호스트 파일에 다음을 추가한다.
sudo nano /etc/apache2/sites-available/java-school.net.conf
<VirtualHost 127.0.0.1> ServerAdmin javaschool@gmail.org ServerName java-school.net ServerAlias www.java-school.net DocumentRoot /var/www/java-school.net/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined JkMount /* ajp13_worker </VirtualHost>
톰캣의 server.xml 파일을 열고 다음 부분의 주석을 푼다.
sudo nano /etc/tomcat9/server.xml
<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
아파치를 다시 시작한다.
sudo service apache2 restart
톰캣을 다시 시작한다.
sudo service tomcat9 restart
http://127.0.0.1을 방문할 때 톰캣의 루트 애플리케이션이 반응하면 테스트 성공이다.
루트 애플리케이션 변경
git clone https://github.com/kimjonghoon/spring-thymeleaf
pom.xml를 다음과 같이 편집한다.
<build> <finalName>spring-thymeleaf</finalName> <pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> <configuration> <filesets> <fileset> <directory>src/main/webapp/WEB-INF/classes</directory> </fileset> <fileset> <directory>src/main/webapp/WEB-INF/lib</directory> </fileset> </filesets> </configuration> </plugin> </plugins> </pluginManagement> </build> <!-- <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>10.0.0</version> </plugin> </plugins> </build> -->
mvn clean compile war:inplace
sudo service tomcat9 stop
sudo nano /etc/tomcat9/Catalina/localhost/ROOT.xml
<?xml version="1.0" encoding="UTF-8"?> <Context docBase="/home/kim/spring-thymeleaf/src/main/webapp" reloadable="true"> </Context>
/var/www/java-school.net/html 디렉터리에, 톰캣 루트 애플리케이션 정적 요소의 심볼릭 링크를 생성한다.
cd /var/www/java-school.net/html
ln -s /home/kim/spring-thymeleaf/src/main/webapp/favicon.ico favicon.ico
ln -s /home/kim/spring-thymeleaf/src/main/webapp/static static
톰캣 루트 애플리케이션의 정적 요소는 아파치가 서비스하도록 가상 호스트 파일을 다음과 같이 수정한다.
sudo nano /etc/apache2/sites-available/java-school.net.conf
<VirtualHost 127.0.0.1> ServerAdmin javaschool@gmail.org ServerName java-school.net ServerAlias www.java-school.net DocumentRoot /var/www/java-school.net/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined JkUnMount /favicon.ico ajp13_worker JkUnMount /static/* ajp13_worker JkMount /* ajp13_worker </VirtualHost>
아파치를 다시 시작한다.
sudo service apache2 restart
톰캣을 다시 시작한다.
sudo service tomcat9 restart
http://127.0.0.1를 방문한다.
참고