[Wildfly] mod_jk로 Apache/Wildfly 연동

개발할래·2023년 8월 31일

Jboss

목록 보기
2/2

Wildfly 설치 후 Apache 연동까지 진행

환경

  • CentOS 7.9
  • Wildfly 29.0.0 final
  • apxs
  1. apxs(apache extension) 설치
# yum install -y httpd-devel 
# which apxs
/usr/bin/apx
  1. tomcat-connector 설치
$ wget http://mirror.navercorp.com/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
$ tar xvzpf tomcat-connectors-1.2.48-src.tar.gz
$ cd tomcat-connectors-1.2.48-src/native/
$ ./configure --with-apxs=/usr/bin/apxs
$ make
$ make install
  • ./configure 설정 단계에서 오류 발생시

    configure: error: in `/usr/local/src/tomcat-connectors-1.2.48-src/native':
    configure: error: C compiler cannot create execut

아래 패키지 설치 진행
# yum install gcc gcc-c++

  1. apache config에 mod_jk 모듈에 대한 정보 입력 및 연동
# vi /etc/httpd/conf/httpd.conf <<

아래 내용 기입
conf/mod-jk.conf라는 설정 파일을 따로 두어 관리를 용이하게 함
# mod_jk Connector
LoadModule jk_module modules/mod_jk.so
Include conf/mod-jk.conf

# vi /etc/httpd/conf/mod-jk.conf <<

아래 내용 기입(아파치가 사용할 mod_jk 모듈 위치가 mod_jk.so, 로그를 남길 위치, 형식 등)
<IfModule jk_module>

# Where to find workers.properties
JkWorkersFile conf/workers.properties

# the location of jk shared memory
JkShmFile run/mod_jk.shm

# Where to put jk logs
JkLogFile logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

JkMountFile conf/uriworkermap.properties

</IfModule>

# vi /etc/httpd/conf/workers.properties
아래 내용 기입
worker.list=worker1

worker.worker1.type=ajp13
worker.worker1.host=WAS IP
worker.worker1.port=8009

# vi /etc/httpd/conf/uriworkermap.properties
아래 내용 기입(아파치로 요청 오는 URI를 worker랑 매핑)
# Mount the Servlet context to the worker1 worker
/jmx-console=worker1
/jmx-console/*=worker1
/web-console=worker1
/web-console/*=worker1
# all url turn to ajp
/*=worker1

#vi /opt/wildfly/standalone/configuration/standalone.xml

 <subsystem xmlns="urn:jboss:domain:undertow:14.0" default-virtual-host="default-host" default-servlet-container="default" default-server="default-server" statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}" default-security-domain="other">
            <byte-buffer-pool name="default"/>
            <buffer-cache name="default"/>
            <server name="default-server">
                <ajp-listener name="ajp" socket-binding="ajp"/>  << 추가
                <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
                <https-listener name="https" socket-binding="https" ssl-context="applicationSSC" enable-http2="true"/>
                <host name="default-host" alias="localhost">
                    <location name="/" handler="welcome-content"/>
                    <http-invoker http-authentication-factory="application-http-authentication"/>
                </host>
            </server>
            <servlet-container name="default">
                <jsp-config/>
                <websockets/>
            </servlet-container>
            <handlers>
                <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
            </handlers>
            <application-security-domains>
                <application-security-domain name="other" security-domain="ApplicationDomain"/>
            </application-security-domains>
        </subsystem>

---------중간 생략-----------

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>   << 추가
        <socket-binding name="http" port="${jboss.http.port:8080}"/>
        <socket-binding name="https" port="${jboss.https.port:8443}"/>
        <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="${jboss.mail.server.host:localhost}" port="${jboss.mail.server.port:25}"/>
        </outbound-socket-binding>
    </socket-binding-group>

Wildfly 재기동

# systemctl stop wildfly
# systemctl start wildfly
# systemctl status wildfly

아파치 시작

# service httpd start
Redirecting to /bin/systemctl start httpd.service

ip로 접속

profile
내 인생부터 개발

0개의 댓글