Domain Name을 얻어 아파치를 사용하지 않고 바로 JBoss에 적용해야 할 일이 있었습니다.
보통의 경우 virtual-host 설정으로 여러 개의 도메인이름을 이야기하는 데 한 도메인 이름을 사용할 경우 다음의 세팅을 하면 됩니다.
keystore를 이용한 https까지 추가한 내용입니다.
<Service name="jboss.web">
<!-- A HTTP/1.1 Connector on port 8080 -->
<Connector protocol="HTTP/1.1" port="80" address="${jboss.bind.address}"
connectionTimeout="20000" redirectPort="443" />
<!-- Add this option to the connector to avoid problems with
.NET clients that don't implement HTTP/1.1 correctly
restrictedUserAgents="^.*MS Web Services Client Protocol 1.1.4322.*$"
-->
<!-- A AJP 1.3 Connector on port 8009 -->
<Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}"
redirectPort="443" />
<!-- SSL/TLS Connector configuration using the admin devl guide keystore-->
<Connector protocol="HTTP/1.1" SSLEnabled="true"
port="443" address="${jboss.bind.address}"
scheme="https" secure="true" clientAuth="false"
sslProtocol = "TLS"
keystoreFile="/jboss/servers/admin/conf/admin.keystore"
keystorePass="123456"
/>
<Engine name="jboss.web" defaultHost="admin.openseed.com">
<Realm className="org.jboss.web.tomcat.security.JBossWebRealm"
certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping"
allRolesMode="authOnly"
/>
<Host name="admin.openseed.com" autoDeploy="false"
deployOnStartup="false" deployXML="false">
<Valve className="org.apache.catalina.valves.AccessLogValve"
prefix="admin_access_log."
suffix=".log"
pattern="common"
directory="${jboss.server.log.dir}"
resolveHosts="false" />
</Host>
<Host name="localhost">
blabla...
deploy되는 application war 의 jboss-web.xml 파일 아래에
- <jboss-web>
- <context-root>/</context-root>
- <virtual-host>admin.openseed.com</virtual-host>
- </jboss-web>
hostname을 즉시 변경
# echo admin.openseed.com > /proc/sys/kernel/hostname
끝.
http://www.javapattern.info/trackback/428