JBoss EAP

JBOSS EAP 6 Standalone 환경 구성하기

JBOSS EAP 6 설치를 끝내고 나면 Standalone 이나 Domain 모드로 운영하기 위한 환경 구성을 해야 한다. JBOSS EAP 6 Standalone 환경 구성은 설치한 JBOSS 에서 Standalone 디렉토리를 복사해서 구성하게 된다. JBOSS 를 설치는 JBOSS_HOME 을 설치하는 것이다. 이것 자체로 서버를 운영할수 있지만 이것을 GLOBAL 로 하고 각각의 운영위한 서버는 JBOSS_HOME 에 Standalone, Domain 디렉토리를 복사하고 Localize 해서 만들어진다. 이는 마치 Tomcat 의 Multi Instance 구성하기와 유사하다. 기본환경 먼저 기본적인 환경을 체크하고 넘어가자. 다음과 같다. Linux: CentOS 6, 7 JAVA_HOME: /opt/jdk1.8.0_91 JBOSS_HOME: […]

JBoss EAP

JBoss EAP 6.4 설치

 JBoss EAP 6.4 설치 JBoss EAP 6.4 설치에 대해 다룬다. JBoss EAP 6.4 설치는 GUI와 Text 기반 설치 두가지를 지원 한다. 여기서는 Linux 터미널에서 Text 기반 설치에 대해서 다룬다. 사전준비 JBoss EAP 6.4 를 설치하기 위해서는 JDK 1.7 이상 필요하다. JDK 1.6도 지원한다고 되어 있지만 현시점(2016. 06) 에서 1.6은 너무나 구형이라 권장하지 않는다. 설치를 위해서는 설치 파일이 필요한데, zip 파일과 installer 파일 형태로 제공된다. zip 파일은 그냥 압축해제하면 되지만 installer 는 인스톨 과정을 거쳐야 한다. 여기서는 installer를 이용한 설치에 대해서만 […]

JBoss EAP

JBoss 5 MySQL Replication 접속

만일 MySQL 이 Replication 되어 있다고 한다면 Master 는 read/write 를 Slave 는 read Only 만 하도록 접속을 하고 싶을 것이다. MySQL Connector/J 의 최신버전은 이러한 접속을 지원 한다. 다음은 MySQL Replication 접속을 위한 mysql-ds.xml 예제다.

‘connection-url’, ‘driver-class’ 을 유심히 봐야 한다. mysql-ds 에서의 설정은 MySQL 의 접속을 이중으로 하도록만하고 실제 쿼리를 분기하기 위해서는 DAO 에서 @Transactional(readOnly=true) 를 주어야 한다. 이 어노테이션은 읽기만을 하다는 것을 알려주고 이는 MySQL Slave 에 접속하게 된다. 각 메소드마다 어노테이션을 주기 싫다면 AOP 를 […]

JBoss EAP

JBoss EAP 5 MySQL JNDI 설정

JNDI 는 자바 애플리케이션 서버라면 거의 다 지원하는 기능이다. 이는 특정한 자원의 접근을 디렉토리 접근하듯이 하도록 해준다. 여기서 자원이라면 대부분 외부 서버에 있는 저장소들을 말한다. MySQL, PostgreSQL, Oracle, MS SQL 등 외부 저장소에 접속할때마다 저수준의 드라이버를 올리고 인증을 넣는게 아니라 자바 애플리케이션이 구동되면서 접속하을 해놓고 이것을 디렉토리화해서 올려놓으면 자바 애플리케이션에서는 이 디렉토리에 접근하는 것만으로 외부자원에 접속이 끝이 나게 되어 간편해진다. 이 글은 JBoss EAP 5 MySQL JNDI 설정에 관한 글이다. MySQL Connector/j MySQL에서는 자바 애플리케이션을 위해서 접속 드라이버를 제공한다. jar […]

JBoss EAP

Ubuntu 14.04 의 JBoss EAP 5.2 init 스크립트

JBoss EAP 5.2 를  Ubuntu 14.04 에서 운영할 경우에 서비스 시작을 init 에 등록하기 위한 스크립트. Wildfly 에 내용을 가지고 와서 마이그레이션 했다.

아래는 jboss-env.sh 의 내용.

 

JBoss EAP

TCP 기반 JBoss 5 Clustering 하기

AWS EC2 에서 JBoss EAP 5.2 를 설치하고 운영할때에 보통 클러스터링을 설정하게 된다. 문제는 JBoss EAP 5.2 에서 클러스터링은 JGroup 을 기반으로 작성되어 있다. 중요한 것은 클러스터링을 할때에 Multicast UDP 를 사용한다는 것인데, AWS EC2 에서는 Multicast 자체를 지원하지 않는다. 따라서 JBoss EAP 5.2 를 AWS EC2 에서 운영하면서 클러스터링을 기본 설정값으로 설정하고 실행시키면 클러스터링이 되지 않는다. 이럴때 TCP 를 이용하면 가능해진다. 이 포스트는 AWS EC2 에서 TCP 기반 JBoss Clustering 에 관련된 내용이다. MPING을 TCPPING으로 바꾸기 Cluster 의 프로토콜 […]

Apache, Tomcat, WAS

Apache Tomcat 연동하기 – mod_jk

Tomcat 을 단독으로 운영하지는 않는다. 여러 서버에서 설치한 후에 이것을 부하분산하는 방법으로 운영하는데, 자주 쓰이는 방법이 Tomcat 앞단에 Apache 웹 서버를 두고 이 둘을 연결해주는 방법으로 사용을 한다. 이때 연결방법이 여러가지가 있는데, Tomcat 과 Apache 를 위한 전용의 모듈이 있는데 그것이 바로 mod_jk 이다. mod_jk 는 AJP 프로토콜을 사용해서 이 둘을 연결해주는데, 다른 연결들보다 성능이 우수하다. 환경 이번 테스트한 환경은 다음과 같다. OS: CentOS7 x86_64 Java Version: jdk-1.8.0_u65 WAS: Tomcat 8.0.30 그리고 서버는 한대이고 Tomcat 을 여러개 설치했다. 이때에 하나의 […]

Tomcat

Tomcat Manager 접속 제한.

톰캣은 웹에서 톰캣을 관리할 수 있도록 Manager 페이지를 제공합니다. Tomcat 에 대한 관리를 어느정도 할 수 있기 때문에 보안상 Tomcat Manager 접속 제한 을 해서 아무나 접속을 못하게 하는것이 좋습니다. 방법은 VirtualHost 설정디렉토리에 manager.xml 파일을 작성하는 겁니다.

Allow 에는 IP 주소나 도메인을 넣을 수 있으며 IP의 경우에 Subnet 으로도 표시가능하고 도메인의 경우에는 *로도 표시가 가능합니다.

 

Tomcat

Tomcat manager 암호화 패스워드 설정

Tomcat 에는 Tomcat 서버를 관리를 쉽게 하기위한 GUI,Script 페이지를 제공합니다. 그런데, 여기에 접근하기 위해서는 인증을 설정해야 하는데 이는 $CATALINA_BASE/conf/tomcat-users.xml 파일에 설정하도록 되어 있습니다.

그런데, 여기에는 패스워드를 입력하도록 되어 있는데 텍스트로 되어 있습니다. 보안상 좋지 않습니다. 그래서 Tomcat manager 암호화 패스워드 설정 을 하는게 좋습니다. 이 문서는 Tomcat 7.x 버전에서 테스트 되었습니다. Digest 암호화 생성 다음과 같이 패스워드를 생성 합니다.

SHA 암호화된 패스워드가 나왔습니다. 이것을 다음과 같이 $CATALINA_BASE/conf/tomcat-users.xml 에 넣어줍니다.

이제 이러한 암호화 패스워드를 Tomcat 서버가 알아먹도록 설정을 […]

Tomcat

Tomcat 에러 정보 숨기기

Java 애플리케이션을 작성할때에 에러 발생시 보여줄 에러 페이지를 설정할 수 있습니다. 웹 애플리케이션 설정 파일인 web.xml 파일에 다음과 같이 해줍니다.

단순하게 HTTP 응답코드 뿐만 아니라 Java Exception 객체에 따른 에러도 설정할 수 있습니다.

하지만 이러한 것은 웹 애플리케이션 개발단계에서 설정을 하는 것인데, 이것 말고 서버단계에서 Tomcat 에러 정보 숨기기 를 할 수 있습니다. Tomcat Server 정보 숨기기 에러가 발생했을때보면 Tomcat 서버의 정보가 함께 표시됩니다. 불필요한 정보 입니다. 이를 숨기거나 다른 것으로 서버단에서 바꿀 수 있습니다. $CATALINA_HOME/lib 디렉토리로 이동하고 […]