2016-02-01 5 views
5

लंबी कहानी छोटी: के साथ स्थानीय एक को कुछ सटीक दूरस्थ URL मैप कर सकता हूं हमारे पास दूरस्थ dev सर्वर है। जिसमें कई सिम्फनी 2 उदाहरण शामिल हैं। example.com/page1 और example.com/page2 विभिन्न अनुप्रयोगों के साथ अलग-अलग AWS उदाहरण हैं। उनमें से एक (यानी /पृष्ठ 1) मेरी ज़िम्मेदारी है। और मैं इसे दूरस्थ रूप से और स्थानीय रूप से विकसित करने में सक्षम हूं। स्पष्ट रूप से स्थानीय रूप से सबसे तेज़ तरीका है, लेकिन कारणों की सूची है कि दूरस्थ रूप से विकसित करना बेहतर क्यों होता है जब पूरे एप्लिकेशन समान डोमेन के अंतर्गत एक बार काम करते हैं। तो मैं अपने स्थानीय उदाहरण को संदर्भित करने के लिए example.com/page1 बनाना चाहता हूं, इसलिए मैं प्रत्येक सीएमडी + एस एफ़टीपी के माध्यम से फाइल नहीं भेजता हूं।क्या मैं अलग-अलग बंदरगाह

अपाचे सेटिंग्स से मैं कुछ स्थानीय यूआरएल रिमोट से एक के लिए, मैप कर सकते हैं

ProxyPass /app/ http://example.com/app/

मैं क्या जरूरत है ProxyPass

साथ यह कर बिल्कुल वैसा ही है, लेकिन इसके विपरीत।

मेरे पास दो समान वेब एप्लिकेशन दूरस्थ रूप से और स्थानीय रूप से चल रहे हैं।

रिमोट: https://example.com:33333/app/

स्थानीय: http://localhost:22222/app/

मैं इसे इस तरीके से काम प्राप्त करने की आवश्यकता:

  • https://example.com:33333/homepage/ ->https://example.com:33333/homepage/
  • https://example.com:33333/app/ ->http://localhost:22222/app/

ब्राउज़र पता बार में दूरस्थ URL को रखना।

है कि यह मेरी अंत पर सेट करना संभव अप (दूरस्थ तरफ ProxyPass से नहीं)

शायद कुछ Chrome एक्सटेंशन या प्रॉक्सी आवेदन है?

+0

यह संदर्भ है कि आप इस के तहत की जरूरत को स्पष्ट नहीं कर रहा है; यह स्थानीय उपयोग या शोकेस (उदाहरण के लिए, एकाधिक कॉपी-पेस्ट निर्देशों का पालन करने के लिए तैयार) के लिए स्थानीय बॉक्स पर ऐसा करना है, एंटरप्राइज़ सेटिंग (मिटएम लोगों का समूह बनाना चाहते हैं), या 100% स्वचालित एक्सटेंशन विशिष्ट खोजना Google क्रोम में (और यदि ऐसा है, तो कृपया apache और nginx टैग को प्रतिस्थापित करें)। वास्तव में आप क्या हासिल करने की कोशिश कर रहे हैं? मौजूदा जवाब वास्तव में कहां कम हो जाता है? – cnst

+0

@cnst, मुझे उस समस्या का वर्णन करने दें जो मैं हल करना चाहता हूं। हमारे पास रिमोट देव सर्वर है। जिसमें कई सिम्फनी 2 उदाहरण शामिल हैं। उदाहरण के लिए example.com/page1 और example.com/page2 विभिन्न अनुप्रयोगों के साथ अलग-अलग aws उदाहरण हैं। उनमें से एक (यानी/पृष्ठ 1) मेरी ज़िम्मेदारी है। और मैं इसे दूरस्थ रूप से और स्थानीय रूप से विकसित करने में सक्षम हूं। स्पष्ट रूप से स्थानीय रूप से सबसे तेज़ तरीका है, लेकिन कारणों की सूची है कि दूरस्थ रूप से विकसित करना बेहतर क्यों होता है जब पूरे एप्लिकेशन समान डोमेन के अंतर्गत एक बार काम करते हैं। तो मैं अपने स्थानीय उदाहरण को संदर्भित करने के लिए example.com/page1 बनाना चाहता हूं, इसलिए मैं प्रत्येक सीएमडी + एस एफ़टीपी के माध्यम से फाइल नहीं भेजता हूं। – Maksym

उत्तर

4

यह उतना आसान नहीं है, और यह प्रॉक्सी पास से बिल्कुल अलग है।

जब उपयोगकर्ता अपने ब्राउज़र में 'example.com' टाइप करता है - ब्राउज़र निर्णय लेता है कि अनुरोध कहां भेजना है, तो आपके nginx कॉन्फ़िगरेशन का कोई प्रभाव नहीं पड़ता है। हालांकि, ब्राउज़र निर्णय लेने के लिए DNS का उपयोग करेगा और आप इसमें हस्तक्षेप कर सकते हैं।

यदि आपके पास उपयोगकर्ता DNS पर नियंत्रण है - तो आप example.com डोमेन को ओवरराइट कर सकते हैं ताकि अनुरोध आपके स्थानीय सर्वर पर आ सकें। यदि यह केवल आपकी स्थानीय मशीन है, तो आप इसे/etc/hosts में कर सकते हैं। उसके बाद, यह nginx कॉन्फ़िगरेशन में server_name टैग में example.com जोड़ने जैसा आसान है।

राउटर को कॉन्फ़िगर करने की एक और संभावना है लेकिन मुझे लगता है कि यह आपके लिए एक विकल्प नहीं है।

+0

हाय! उत्तर देने के लिए आपका शुक्रिया। एक अच्छी योजना की तरह लगता है, लेकिन क्या आप कुछ विशिष्ट उदाहरण साझा कर सकते हैं? – Maksym

0

अगर मैं आपके अनुरोध सही ढंग से समझ, यह कुछ मैं Nginx में हर समय करना है:

मैं होगा/के साथ अपने वेब सर्वर और कुछ भी करने के लिए जाने के लिए और "_" मेरी Elasticsearch सर्वर से जाना (जैसे/अनुक्रमणिका/प्रकार/_ खोज), इसलिए मेरा पूरा डोमेन वास्तव में कई सिस्टम है, इस प्रकार डोमेन नाम को एकीकृत करना और एसएसएल केर्ट की लागत को कम करना।

यहां नमूने Nginx config है:

server { 
    listen 10.1.40.2:80; 

    #+ your example 
    location ~ /app { 
     #+ another server 
     proxy_pass  http://10.1.40.11:80; 
     proxy_redirect  off; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Host $server_name; 
    } 

    #+ your example 
    location ~ /homepage { 
     #+ another server 
     proxy_pass  http://10.1.40.10:80; 
     proxy_redirect  off; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Host $server_name; 
    } 

    location ~ /_ { 
     #+ different port 
     proxy_pass  http://127.0.0.1:9200; 
     proxy_http_version 1.1; 
     proxy_set_header Connection "Keep-Alive"; 
     proxy_set_header Proxy-Connection "Keep-Alive"; 
    } 

    location/{ 
     proxy_pass  http://127.0.0.1:80; 
     proxy_redirect  off; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Host $server_name; 
    } 
} 
संबंधित मुद्दे