jboss / tomcat을위한 nginx 설정


26

Apache를 사용하여 포트 80에서 JBoss / TomCat으로 트래픽을 전달하기 위해 설치 및 구성에 사용했습니다 mod_jk.

nginx에 해당하는 것이 있습니까? 기본적으로 모든 포트 80 트래픽이 jboss로 전달되기를 원합니다.


Tomcat의 역방향 프록시로 Nginx구성하는 방법 에 대한 내 블로그 게시물을 확인할 수 있습니다 . 예를 들어 로그인하지 않은 사용자를 위해 콘텐츠를 캐싱하고 다른 언어로 리디렉션하는 것처럼 약간의 추가 조정이 포함되어 있으므로 흥미로울 수 있습니다.
Vladimir Grichina

답변:


17

nginx를 확인하려면 여기에서 해당 문서를 확인 하십시오 . 프록시 지원이 내장되어 있습니다.

아래 사이트의 예에서 특정 포트 80 트래픽이 포트 8080에서 실행 되는 단일 서블릿 컨테이너 로 전송 되고 있음을 알 수 있습니다.

로드 밸런싱, 스케일링 등을 위해 여러 백엔드 서블릿 컨테이너 를 실행 하려면 트래픽이 가장 적은 백엔드 서버로 전송 하는 업스트림 페어 모듈을 확인 해야합니다. defaul w / nginx로 배송되지 않습니다.

server {
  listen          80;
  server_name     YOUR_DOMAIN;
  root            /PATH/TO/YOUR/WEB/APPLICATION;
  location / {
    index index.jsp;
  }
  location ~ \.do$ {
    proxy_pass              http://localhost:8080;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Host $http_host;
  }                                                                                                       
  location ~ \.jsp$ {
    proxy_pass              http://localhost:8080;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Host $http_host;
  }
  location ^~/servlets/* {
    proxy_pass              http://localhost:8080;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        Host $http_host;
  }
}

3

그것을 좋아하는 다른 방법은 LikeApache 위키 페이지에 설명되어 있습니다.

server {
    listen myhost:80;
    server_name  myhost;
    location / {
        root /path/to/myapp/public;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_pass http://myapp:8080;
    }
}

루트 대신 / myapp를 사용하여 테스트했으며 위치 / myapp 및 proxypass http : // myapp : 8080 / myapp ;

또한이 구성은 모든 것을 Java 응용 프로그램에 매핑합니다. Struts와 같은 MVC 프레임 워크로 매핑 된 멋진 URL이있을 때 유용합니다.


2

mod_jk를 사용할 필요는 없습니다. mod_proxy를 사용할 수 있습니다. 즉 AJP 대신 HTTP를 통해 트래픽을 전달합니다. nginx에 프록시 기능이있는 경우에도 마찬가지입니다.


7
프록시의 문제점은 mod_jk / fastcgi / ajp보다 느리다는 것입니다
Adam Gent

2

nginx에 대한 아주 새로운 ajp_module이 있습니다. 나는 그것에 대한 경험이 없지만 세션 끈적임과 특히 지속적인 백엔드 연결이 Tomcat에 매우 도움이된다고 생각합니다. 두 가지 방법 (http 프록시 또는 ajp 프록시)은 오래 실행되는 쿼리 (comet) 또는 대용량 파일 전송 (업로드)에 유감스럽게도 융통성이 없습니다.

https://github.com/yaoweibin/nginx_ajp_module#readme

lighttpd BTW에는 FCGI, HTTP, CGIS 및 AJP13 인코딩을 처리 할 수있는 일반 프록시 모듈이 있습니다. 이것은 더 나은 접근 방법처럼 보입니다 (그러나 나는 읽을 때 비정형적인 길거나 큰 요청 / 응답 패턴과 관련하여 동일한 제한이 있다고 생각합니다).

http://redmine.lighttpd.net/wiki/1/Docs:ModProxyCore

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.