본문 바로가기

회사관련 모든글

Apache서버 설정파일인 conf에서 쓰이는 용어 해석

httpd.conf에서 httpd는 http daemon을 의미하여 HTTP 프로토콜을 처리하는 서버 프로세스이다. 
httpd.conf는 이 서버의 설정 파일로, Apache HTTP Server의 동작 방식과 설정을 정의합니다.

Daemon: Unix-like 운영 체제에서 백그라운드에서 실행되는 프로그램을 의미합니다. 주로 서버 또는 서비스로서 동작하는 프로세스를 가리킵니다.

Apache24의 설정파일안의 mod_jk.conf라는 파일안의 내용 중  JkMount /*/servlet/* tomcat9 의 해석:

Apache HTTP Server의 mod_jk 모듈을 사용하는 mod_jk.conf 파일 내에 있는 JkMount /*/servlet/* tomcat9 설정은 Apache와 Tomcat 서버 간의 통신을 설정하는 지시문입니다. 이 설정의 의미를 하나씩 풀어보겠습니다.

JkMount 지시문

JkMount는 Apache HTTP 서버가 받은 요청을 Tomcat에 전달할 경로를 정의하는 설정입니다. 이 지시문은 **AJP (Apache JServ Protocol)**을 통해 Apache가 Tomcat 서버로 요청을 포워딩하도록 합니다.

설정 코드 해석: JkMount /*/servlet/* tomcat9

  1. JkMount:
    • JkMount는 특정 URL 패턴에 대한 요청을 Tomcat으로 전달하라는 Apache의 지시문입니다. mod_jk 모듈이 이를 처리하여, 요청을 AJP 프로토콜을 통해 Tomcat 서버로 전달합니다.
  2. /*/servlet/*:
    • 이 부분은 요청 URL의 경로 패턴을 나타냅니다.
    • /*/servlet/*는 모든 경로 중에서 /servlet/를 포함하는 경로에 대한 요청을 의미합니다.
      • 예를 들어, http://yourserver.com/abc/servlet/xyz와 같은 URL이 이 패턴에 매칭됩니다.
      • 여기서 *는 와일드카드로, 경로의 어떤 값도 매칭될 수 있다는 것을 의미합니다.
      • 이 설정은 /servlet/ 경로를 포함하는 URL에 대한 요청을 모두 Tomcat 서버로 전달하도록 설정합니다.
  3. tomcat9:
    • tomcat9은 Apache와 Tomcat 간의 연결을 정의하는 자원 이름입니다. 이는 mod_jk가 Tomcat 인스턴스를 식별하고(mod_jk는 아파치에서 사용하는 모듈이므로 아파치측에서 톰켓의 자원을 식별하기 위해 tomcat9라는 이름의 자원을 아파치 측에서 사용하는 것이다)요청을 전달할 때 사용하는 이름입니다.
    • 보통 이 자원은 mod_jk.conf 파일 내에서 다른 설정(예: JkWorkersFile, JkMountFile, JkLogFile 등)을 통해 정의되며, Tomcat 9 서버로의 연결을 설정합니다.
    예를 들어, tomcat9은 workers.properties 파일에서 Tomcat의 AJP 포트 (기본적으로 8009 포트)에 연결되도록 설정되었을 수 있습니다.

 

JkMount에서 **jk**와 **mount**의 의미는 다음과 같습니다: 

(Jk=mod_jk, mount=오르다? Nono 여기서는 '자원에 연결하다' 라는 의미) 즉, /*/servlet/* 이라는 경로를 tomcat9이라는 Apache가 가지고 있는 자원이면서 tomcat에 연결되어 있는 자원에 연결한다 라는 의미임)

1. **jk**의 의미

  • **jk**는 mod_jk 모듈의 약자입니다. mod_jk는 Apache HTTP Server와 Tomcat 서버 간의 연결을 처리하는 모듈입니다.
  • 이 모듈은 **AJP (Apache JServ Protocol)**을 사용하여, Apache HTTP Server와 Tomcat 간의 요청을 전달하고, Tomcat에서 처리한 결과를 Apache가 클라이언트에게 반환하는 역할을 합니다.
  • **jk**는 mod_jk 모듈이 사용하는 접두어로, 이 모듈이 Apache와 Tomcat을 연결하는 작업을 수행한다는 것을 나타냅니다.

2. **Mount**의 의미

  • **mount**는 URL 패턴을 지정하고, 이 URL 패턴에 해당하는 요청을 Tomcat 서버로 전달하겠다는 의미입니다.
  • 즉, **"어디에 요청을 전달할지(어디에 mount 할지)"**를 지정하는 설정입니다.
  • JkMount 지시문은 Apache가 어떤 URL 패턴을 Tomcat 서버로 전달할지 정의하는 데 사용됩니다.
    • 예를 들어, JkMount /app/* tomcat9라고 설정하면, /app/로 시작하는 모든 요청이 Tomcat 서버로 전달됩니다.