지금까지 테스트용 웹 페이지가 필요하면, 당연히 이클립스로 프로젝트를 만든 후 컨트롤러를 만들어 HTML 페이지를 띄웠다.
그런데 실무 중 테스트용 웹 페이지가 필요한 일이 생겨 부랴부랴 프로젝트를 생성하는데, 옆에서 사수분께서 리눅스에 httpd를 사용해 테스트용 웹 페이지를 띄우는 모습을 보았다.
그래서 오, 이런 게 있었구나 했고 알아두면 두고두고 활용할 일이 많을 수 있을 것 같아 공부를 시작한다.
httpd
아파치라고도 불리는 httpd는 아파치의 HTTP 서버 프로그램이다.
Cent OS를 기준으로 아래의 명령어로 설치할 수 있다.
yum -y install httpd
설정
httpd의 설정 파일은 /etc/httpd/conf/httpd.conf 에 존재한다.
*물론 이외에도 여러 설정 파일들이 존재한다. 자세한 것은 아래 링크 확인
https://123okk2.tistory.com/146?category=964153
해당 파일을 vim으로 띄우면 아래와 같은 항목들이 등장한다. 각 항목에 대한 설명은 아래와 같다.
- ServerRoot : 아파치의 주요 파일 (설정, 에러, 로그)이 저장될 디렉터리이다.
- Listen : 아파치 서버와 바인딩 될 TCP 포트이다.
- Include : 별도로 사용할 설정 파일들이다.
- User, Group : httpd가 실행된 권한의 사용자/그룹 이름이다.
- ServerAdmin : 오류 발생 시 표시할 웹 서버 관리자의 메일 주소이다.
- DocumentRoot : 웹 문서가 저장되는 기본 디렉터리 경로이다.
- DirectoryIndex : 사용자가 디렉토리를 지정할 경우 제공할 웹 문서의 이름을 지정한다.
- 사용자가 별다른 것을 입력하지 않고 서버의 주소만 입력하면 기본으로 제공되는 페이지이다.
실행
여느 서비스와 마찬가지로 systemctl을 이용하여 시작한다.
systemctl start httpd
그런데 그냥 시작하면 ipv6의 80 포트로 가기 때문에, Listen을 아래와 같이 변경한다.
Listen 0.0.0.0:80
그 후 방화벽을 해제한 후 실행시킨다.
firewall-cmd --permanent --add-port 80/tcp
firewall-cmd --reload
systemctl start httpd
실행 시 아래와 같은 페이지가 등장하게 된다.
아무 페이지도 넣지 않았기 때문인데, 어떤 페이지를 디폴트 페이지로 해서 접속 시 보여주고 싶다면 index.html을 만들어 DocumentRoot 설정으로 지정된 /var/www/html/ 내에 넣어주면 된다.
테스트를 위해 아래의 index.html 페이지를 만들어 넣어주었다.
<html>
<head></head>
<body>
<p style="text-align:center">this is test homepage</p>
</body>
</html>
그 후 재시작은 필요 없이 새로고침을 누르면 아래와 같은 화면으로 변경됨을 확인할 수 있다.
만약 여러 페이지를 동시에 띄우고 보고 싶다면 여러 html을 만들어 줄 수 있다.
위의 코드에서 배경 색만 지정하여 아래와 같은 html들을 만들어주자.
그 후 접속주소/{html 파일 이름}.html 을 사용하여 각 html에 접속해가며 별도의 프로젝트 생성 없이 HTML 파일들의 동작을 확인할 수 있다.
+)
원래는 아무 설정 없이 실행 후 index.html이 없는 상태에서 페이지에 접속하면 DocumentRoot 내에 있는 파일들의 리스트가 나와야 하는데 자동으로 막히도록 업데이트 된 것인지 나오지 않았다.
물론 이는 보안상 막아야 하는 부분이긴 하지만, 테스트 시에는 활용해야할 경우도 있을 수 있다.
만약 위의 옵션이 필요하다면, /etc/httpd/conf.d/welcome.conf 파일을 수정하면 된다.
해당 파일에서 Indexes 앞의 -를 제거해주면 된다.
그리고 index.html을 제거한 후 접속을 하면 아래와 같이 디렉터리 내 항목들을 확인할 수 있다.
'실습 > 리눅스 서버 + 스프링 부트' 카테고리의 다른 글
Spring Cloud Config (0) | 2022.03.13 |
---|---|
Spring Boot 캐시 사용 (0) | 2022.03.11 |
Filter, Interceptor, AOP (0) | 2022.02.01 |
ntp를 이용한 타임서버 구축 (0) | 2022.01.22 |
Scheduler (0) | 2022.01.15 |