2012-02-11 11 views
6

क्या Grails उप-डोमेन (यानी subdomain.domain.com) के बारे में कुछ भी जानते हैं? मुझे यह manual में चर्चा नहीं हुई है। क्या यह पूरी तरह से एक ऐप सर्वर/वेब सर्वर मुद्दा है? Grails नियंत्रकों में, या तो स्थिर या गतिशील रूप से बंधे जा सकते हैं?Grails और Subdomains

उत्तर

10

इससे कोई फ़र्क नहीं पड़ता कि जावा वेब एप्लिकेशन के लिए कौन सा होस्ट एक्सेस किया गया है।

  1. मान लीजिए कि आपके पास एक होस्ट पर एकाधिक क्लाइंट अलग हैं, उदा। ग्राहक 1.yourhost.com, customer2.yourhost.com, आदि और सभी ग्राहकों के पास समान कार्यक्षमताएं होंगी।

    सरलतम मामले मैं propse में, कि तुम सिर्फ एक फिल्टर है, जो हमेशा कुछ अनुरोध चर डाल दिया जाएगा, इस प्रकार लिख का उपयोग करें: किसी भी स्थान पर फिर

    def filters = { 
        all(controller:'*', action:'*') { 
         before = { 
          if (request.serverName.contains(".")) { 
           def clientName = 
            request.serverName.substring(0, request.serverName.indexOf(".")) 
    
           request.currentClient = Client.findByClientName(clientName) // e.g. 
          } 
         } 
        } 
    } 
    

    आप वर्तमान पहुँचा उप डोमेन के लिए जाँच कर सकते हैं request.currentClient

    हालांकि यदि यह अधिक जटिल हो जाता है तो कुछ बहु-किरायेदार प्लगइन को grails के लिए देखें।

  2. यदि आप प्रत्येक सबडोमेन के लिए अलग-अलग कार्यक्षमताएं चाहते हैं उदा। help.yourhost.com और www.yourhost.com, मैं प्रस्ताव दूंगा कि आप स्वतंत्र grails अनुप्रयोगों को लिखते हैं। फिर आप उन अनुरोधों को अपने एप्लिकेशन सर्वर पर चल रहे उचित एप्लिकेशन पर रीडायरेक्ट करने के लिए एक NGINX सर्वर सेट अप करते हैं।

+0

धन्यवाद समस्या को तोड़ने और विभिन्न समाधान को दिखाने के लिए - इसमें से अधिकांश बल्कि सीधे आगे हम पता लगा क्या नहीं उदाहरण के लिए विभिन्न डोमेन के रूट पर अनुप्रयोगों चल रहा है, है। क्या आपको मौके से https के लिए सबडोमेन तोड़ने के बारे में कोई विचार है, ताकि किसी के पास SSL.mydomain.com को SSL मोड में सुरक्षित किया जा सके? स्प्रिंग-सुरक्षा-कोर चैनल सुरक्षा (http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/single.html#17%20Channel%20 सुरक्षा) यहां सीमित दिखाई देती है। – Ray

+0

तो आपके पास www.mydomain.com है और जब आप उपयोगकर्ता लॉग इन करते हैं तो saf.mydomain.com पर स्विच करना चाहते हैं? मैं कुकी को अलग मेजबान safe.mydomain.com के लिए डालने के साथ सबसे बड़ी समस्या देखता हूं। हालांकि मैंने कोशिश नहीं की है, लेकिन उचित मूल्य पर 'grails.plugins.successHandler.defaultTargetUrl' सेट करके एक पूर्ण URL पर रीडायरेक्ट करने के लिए वसंत सुरक्षा को कॉन्फ़िगर करने के लिए पर्याप्त है? – Chris

+0

मेरी वर्तमान आवश्यकता केवल उत्पाद/सेवा चेकआउट के दौरान साइट को सुरक्षित बनाना है, जहां मैं क्रेडिट कार्ड संसाधित करता हूं। उस प्रसंस्करण के बाद, एक गैर-एसएसएल यूआरएल पर लौटें। जिस तरह से साइट वर्तमान में डिज़ाइन की गई है, उपयोगकर्ता अपने कार्ट के साथ लॉग इन कर रहा है, बस यह देखने के लिए कि उसे क्या छूट मिलती है। वहां से, मैं अपने कार्ट के साथ चेक आउट करने के बाद एसएसएल जाता हूं, और फिर जब वीज़ा/एमसी प्रसंस्करण एकत्र/किया जाता है, तो वापस गैर-एसएसएल पर वापस लौटें। – Ray

0

बहु-किरायेदार प्लगइन का उपयोग करते समय किरायेदार संकल्प के लिए मुझे लगता है कि सबडोमेन के बारे में पता है। http://tinyurl.com/6tuxwvs देखें।

1

हम विभिन्न उप डोमेन का उपयोग करके एकल होस्ट पर कुछ Grails ऐप्स चलाते हैं। सभी मामलों में हम अपाचे का उपयोग टॉमकैट सर्वर के सामने करते हैं और विभिन्न Grails ऐप में अनुप्रयोगों को संभालने के लिए mod jk या आगे प्रॉक्सी का उपयोग करते हैं। http://app1.domain.com के बजाय http://app1.domain.com/app1

+2

रूट संदर्भ के रूप में कॉन्फ़िगर करने के लिए, आपको grails.app.context = "/" का उपयोग करने के लिए Config.groovy को बदलने की आवश्यकता होगी –