Jboss / tomcat के लिए nginx कॉन्फ़िगर करें


26

अपाचे का उपयोग करते हुए पोर्ट 80 पर JBoss / TomCat को ट्रैफ़िक पास करने के लिए हमने इंस्टॉल और कॉन्फ़िगर किया था mod_jk

क्या नगीनक्स के लिए एक समकक्ष है? मूल रूप से सभी पोर्ट 80 ट्रैफिक को jboss में पास करना चाहते हैं।


आप टॉमनेट के लिए रिवर्स प्रॉक्सी के रूप में नग्नेक्स को कॉन्फ़िगर करने पर मेरे ब्लॉग पोस्ट की जांच कर सकते हैं । यह आपके लिए दिलचस्प हो सकता है, उदाहरण के लिए कुछ अतिरिक्त ट्विक्स शामिल हैं क्योंकि कैशिंग सामग्री केवल उपयोगकर्ताओं में लॉग इन नहीं करने और विभिन्न भाषाओं के लिए पुनर्निर्देशित करने के लिए है।
व्लादिमीर ग्रिचिना

जवाबों:


17

नगीनक्स के लिए यहां उनके डॉक्स चेकआउट करें । प्रॉक्सी समर्थन में बनाया गया है।

उनकी साइट से नीचे के उदाहरण में, आप देखेंगे कि पोर्ट 8080 पर चलने वाले एकल सर्वलेट कंटेनर में विशिष्ट पोर्ट 80 ट्रैफ़िक भेजा जा रहा है ।

ध्यान दें कि यदि आप कई बैकेंड सर्वलेट कंटेनर चलाना चाहते हैं (लोड बैलेंसिंग, स्केलिंग, आदि के लिए ...) तो आपको अपस्ट्रीम फेयर मॉड्यूल को देखना चाहिए जो कम से कम व्यस्त बैकेंड सर्वर पर ट्रैफ़िक भेजेगा। इसे डिफॉल 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 wiki पेज में वर्णित किया गया है ।

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 लगाते हुए भी काम करता है ;

साथ ही, यह कॉन्फ़िगरेशन जावा एप्लिकेशन के लिए सब कुछ मैप करता है, जो तब उपयोगी होता है जब आपके पास अच्छे URL होते हैं जो स्ट्रट्स के साथ MVC फ्रेमवर्क द्वारा मैप किए जाते हैं।


2

आपको mod_jk का उपयोग करने की आवश्यकता नहीं है, आप mod_proxy का उपयोग कर सकते हैं, अर्थात AJP के बजाय HTTP से होकर गुजर सकते हैं। यदि नग्नेक्स में छद्म क्षमता है, तो उसे भी काम करना चाहिए।


7
प्रॉक्सी के साथ समस्या यह है कि यह mod_jk / fastcgi / ajp की तुलना में धीमा है
एडम जेंट

2

अब nginx के लिए एक बहुत ताजा ajp_module है । मुझे इसके साथ अनुभव नहीं है, लेकिन मुझे लगता है कि सत्र चिपचिपाहट और विशेष रूप से लगातार बैकेंड कनेक्शन टॉमकैट के लिए काफी सहायक हैं। दोनों विधियाँ (http प्रॉक्सी या ajp प्रॉक्सी) लंबे समय तक चलने वाले प्रश्नों (धूमकेतु) या बड़े फ़ाइल स्थानांतरण (अपलोड) के लिए दुखद रूप से अनम्य हैं।

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

lighttpd BTW में एक सामान्य प्रॉक्सी मॉड्यूल है जो FCGI, HTTP, CGIS और AJP13 एन्कोडिंग को संभाल सकता है। यह एक बेहतर दृष्टिकोण की तरह दिखता है (लेकिन मुझे लगता है कि इसे पढ़ने से यह समान सीमाएं हैं जिनके संबंध अनैतिक लंबे / बड़े अनुरोध / प्रतिक्रिया पैटर्न हैं)।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.