कैसे करें / अगर nginx conf के साथ अन्य विवरण?


9

क्या नगीनक्स के साथ ऐसा कुछ करना संभव है?

if ( $http_user_agent = "wget" ){
   server {
      listen      11.11.11.11:1111;
      root        /website1/;
      server_name example.com www.example.com;
else 

   server {
      listen      22.22.22.22:22222;
      root        /website2/;
      server_name example2.com www.example2.com;
}

आप नक्शे मॉड्यूल पर एक नज़र रखना चाहते हो सकता है ।
gf_

2
आपने कुछ अजीब और काफी व्यर्थ लिखा। शुरुआत से शुरू करने की कोशिश करें, आप किस समस्या को हल करना चाहते हैं
एलेक्सी टेन

जवाबों:


9

Nginx rewrite मॉड्यूल में ifनिर्देश है (उदाहरण के लिए लिंक किए गए दस्तावेज़ देखें), लेकिन नहीं else। समतुल्य elseवह सबif होगा जो संशोधित नहीं है

आप ifअंदर का उपयोग कर सकते हैं server { }लेकिन दूसरे तरीके से नहीं। अगर आपके पास पहले से ही सर्वर की आवश्यकता है तो अनुरोध करने से पहले आपकी तुलना में शर्त भी नहीं होगी। जब उपयोगकर्ता एजेंट है (या नहीं है) तो आप केवल सामग्री की सेवा कर सकते हैं wget

यह भी ध्यान दें कि आपको ifअंदर का उपयोग नहीं करना चाहिए locationक्योंकि यह वांछित के रूप में काम नहीं कर सकता है (देखें अगर ईविल है )।


3

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

यदि आप केवल अलग-अलग सामग्री परोसना चाहते हैं, तो उपयोगकर्ता-एजेंट जैसे अनुरोध के कुछ हिस्सों के आधार पर अलग-अलग रास्तों पर पुनर्निर्देशित करें, जैसे कि http://nginx.org/en/docs/http/ngx_http/rewrite_module। एचटीएमएल

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