'분류 전체보기'에 해당되는 글 648건

  1. 2013/07/24 용비 CentOS 6.4에 NginX 설치
  2. 2013/07/16 용비 Infinispan 5.2 Multi-Node Clustering
  3. 2013/07/11 용비 Jetty 8.1.11 Embedded Java Application
  4. 2013/07/06 용비 Jetty를 이용한 간단한 WAS 만들기
  5. 2013/07/03 용비 Java NIO의 진실

CentOS 6.4에 NginX 설치

Articles 2013/07/24 11:09 용비
NginX Version : 1.4.2

<의존 패키지 설치>
yum -y install gcc g++ cpp gcc-c++
yum -y install pcre-devel
yum -y install openssl openssl-devel
yum -y install gd gd-devel

<NginX 설치>
다운로드 : wget http://nginx.org/download/nginx-1.4.2.tar.gz
압축 해제 : tar -zxvf nginx-1.4.2.tar.gz

압축 풀린 nginx-1.4.2 폴더로 이동 후, configure

./configure --prefix=$HOME/nginx \
--conf-path=$HOME/nginx/conf/nginx.conf \
--sbin-path=$HOME/nginx/sbin/nginx \
--lock-path=$HOME/nginx/lock/nginx.lock \
--pid-path=$HOME/nginx/run/nginx.pid \
--http-client-body-temp-path=$HOME/nginx/lib/nginx/body \
--http-proxy-temp-path=$HOME/nginx/lib/nginx/proxy \
--http-fastcgi-temp-path=$HOME/nginx/lib/nginx/fastcgi \
--http-uwsgi-temp-path=$HOME/nginx/lib/nginx/uwsgi \
--http-scgi-temp-path=$HOME/nginx/lib/nginx/scgi \
--http-log-path=$HOME/nginx/log/access.log \
--error-log-path=$HOME/nginx/log/error.log \
--with-http_addition_module \
--with-http_degradation_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--with-http_image_filter_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_realip_module \
--user=nobody \
--group=nobody

설치 : make && make install
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/570

Infinispan을 Multi-Node간 Clustering을 묶기 위해서 jgroups-tcp.xml을 적용했다.
그런데 Cent OS 5.4에서 특정 port에 대해 방화벽 오픈하는 것을 실패했다.
기본적으로 Infinispan에서 random port를 이용하기 때문인데,
찾아보니 설정에서 FD_SOCK 엘리먼트의 start_port를 적어주고 그 port에 대해 방화벽을 열면 된다는데....
도저히 안 된다.

그래서 그냥 OS Security Level을 Disable로 설정하고 나니 Clustering이 잘 된다..-.-
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/569

Jetty를 Embedding하여 RESTful API를 제공하는 Java Application을 작성하였다.
Jetty의 Distribution Version은 8.1.11.

Jersey Version : 1.8

<Main.java>
public class Main {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {

//Jetty Server Start for RESTful Service
JettyServer jettyServer = new JettyServer();

if (!jettyServer.isStarted())
jettyServer.start();
}

}

<JettyServer.java>
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

import com.sun.jersey.api.core.PackagesResourceConfig;
import com.sun.jersey.spi.container.servlet.ServletContainer;

public class JettyServer {

private Server server;
public JettyServer() {
this(8080);
}
public JettyServer(Integer port) {
server = new Server(port);
server.setStopAtShutdown(true);
server.setSendServerVersion(true);
ServletContextHandler handler = new ServletContextHandler(ServletContextHandler.SESSIONS);
handler.setContextPath("/");
handler.addServlet(new ServletHolder(new ServletContainer(new PackagesResourceConfig("restful_resource_package"))), "/");
server.setHandler(handler);
}
public void setHandler(ContextHandlerCollection contexts) {
server.setHandler(contexts);
}
public void start() throws Exception {
server.start();
}
public void stop() throws Exception {
server.stop();
server.join();
}
public boolean isStarted() {
return server.isStarted();
}
public boolean isStopped() {
return server.isStopped();
}
}

한가지 유의할 사항은, Jersey Annotation을 사용하여 작성할 모든 Resource는 restful_resource_package에 작성되어야 한다는 것이다.
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/568

프로젝트를 진행하면서 다음 요건을 충족시켜야 하는 Web Application을 만들어야 한다.

1. RESTful API 제공
2. Embedded Distributed Infinispan Memory Grid
3. Infinispan에 Data CRUD

위의 3가지를 모두 만족시키기 위해서 처음에는 Jboss AS 7.1.1.Final을 이용하려고 했으나
아쉽게도 Jboss에 내장되어 있는 Infinispan의 Version과 Java NIO를 이용하여 구현한 Socket Server에 내장되어 있는 Infinispan의 Version이 서로 달라 Clustering으로 묶이지 않았다.

그래서 결국, Jetty를 이용하여 RESTful API를 제공하고, Infinispan을 내장하고 있는 Java Application을 별도로 만들기로 했다.

프로그램으로 먹고 사는 사람들이 생각하는 바는 비슷한가 보다.
필요에 의해서 WAS와 같은 무거운 툴이 아닌 필요한 기능만 제공하는 것이 없을까 찾아보니 이미 Jetty를 Open Source Project로 제공하고 있다니...

오늘날 시대의 변화에 발맞춰 따라가려면 역시 이것저것 세상이 돌아가는 Trend를 잘 알고 있어야겠다는 생각이 문득 든다.
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/567

Java NIO의 진실

Articles 2013/07/03 10:29 용비
Java NIO.
NIO의 진정한 의미는 Non-Blocking IO가 아니라 JDK 1.4 이후로 포함된 New IO라는 의미....
지금까지 잘못알고 있었넹...
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/566