2010-04-16 14 views
6

मैं अपनी सभी स्थिर सामग्री को एक सीडीएन में स्थानांतरित करने की योजना बना रहा हूं, इसलिए मेरे सर्वर पर केवल गतिशील सामग्री शेष है। अब मेरे पास Nginx अपाचे के लिए रिवर्स प्रॉक्सी के रूप में स्थापित है। स्थिर अनुरोध जो आया था, जहां सीधे अपाचे में जाने के बिना सीधे Nginx द्वारा वितरित किया गया था।अपाचे के लिए रिवर्स प्रॉक्सी के रूप में एक Nginx केवल गतिशील सामग्री पर मदद करेगा

इस मामले में Nginx अनुरोध का एक बड़ा हिस्सा संभाला और मैं स्पष्ट रूप से Nginx की आवश्यकता को देख सकते हैं।

अब जब मैंने सभी स्थैतिक सामग्री को दूसरे डोमेन में स्थानांतरित कर दिया है, तो अभी भी अपाचे के सामने nginx होने की आवश्यकता है। क्योंकि अब सभी अनुरोध डिफ़ॉल्ट गतिशील अनुरोधों से हैं और सभी अपाचे पर जाते हैं।

क्या डायग्निक्स और अपाचे केवल गतिशील सामग्री के लिए चलने के कोई अन्य लाभ हैं।

मेरे गतिशील सामग्री PHP/MySQL

संपादित है:

स्पष्ट है: मैं अब एक रिवर्स प्रॉक्सी के रूप में Nginx है। यह स्थिर और गतिशील सामग्री प्रदान करता है। लेकिन मैं अपनी स्थिर फाइलों को एक सीडीएन में ले जा रहा हूं। क्या मुझे अभी भी अपने डोमेन पर Nginx की आवश्यकता है। सामने

+0

यह ऐपइंजिन से कैसे संबंधित है? –

+0

'गतिशील सामग्री' से क्या आपका मतलब प्रति उपयोगकर्ता अलग-अलग सामग्री या PHP के माध्यम से उत्पन्न सामग्री है? यदि एक ही पृष्ठ का उपयोग कई उपयोगकर्ताओं के लिए किया जाता है तो आप इसे कुछ सेकंड के लिए Nginx कैश कर सकते हैं, जो भारी भार से निपटने में बहुत मदद करेगा। –

+0

कोई पृष्ठ हमेशा अलग नहीं है। मुझे लगता है कि Nginx के लिए कोई ज़रूरत नहीं है। –

उत्तर

2

नहीं, आपको अब nginx की आवश्यकता नहीं है।

+0

क्या आप मुझे कुछ स्पष्टीकरण दे सकते हैं कि अब इसकी आवश्यकता क्यों नहीं है। क्या यह अपाचे को किसी भी तरह से मदद नहीं करता है। –

+2

मैं कुछ समय पहले आपके प्रश्न पर परेशान हूं।आपने स्थिर सामग्री की सेवा के एकमात्र उद्देश्य के लिए nginx जोड़ा। अब आप स्थैतिक सामग्री की सेवा नहीं करते हैं, लेकिन आपको आश्चर्य है कि क्या आपको अभी भी nginx की आवश्यकता है? अब यह कोई उद्देश्य नहीं है, केवल ओवरहेड जोड़ रहा है। – goat

+1

मैंने सोचा कि शायद यह गतिशील सामग्री के लिए भी मदद की है। –

0

nginx मामले में सबसे अच्छा समाधान है आप अपाचे 1.3 का उपयोग करें:

nginx आसानी से conections के हजारों की सेवा कर सकते हैं, लेकिन अपाचे नहीं

+0

क्या आप इसका मतलब समझ सकते हैं कि आपका क्या मतलब है। क्योंकि मैं केवल गतिशील सामग्री ट्रफ अपाचे प्रदान करता हूं। और मैं अपाचे 2 –

3

क्या मेरे द्वारा की गई कर सकते हैं के लिए एक वेबसाइट है:

    :

    • अपाचे
    • कॉन्फ़िगर यह इतना के सामने एक रिवर्स प्रॉक्सी के रूप में nginx की स्थापना
    • PHP पृष्ठों के लिए अनुरोध (यानी। गतिशील सामग्री) अपाचे
    • स्थिर फ़ाइलों को अनुरोध (सीएसएस, जेएस, ...) सीधे nginx द्वारा परोसा जाता है।

यह दो डोमेन सेट करने के बिना: सभी एक ही डोमेन पर है।


असल में, क्या मेरे द्वारा की गई है:

  • ,, कैशिंग के साथ nginx से छवियों की सेवा gzip संपीड़न के बिना
  • की सेवा nginx से js/सीएसएस (यानी पाठ फ़ाइलें), gzip संपीड़न के साथ , कैशिंग
  • कुछ अन्य एक्सटेंशन (पीडीएफ, exeutables, ...) प्रपत्र nginx, संपीड़न के बिना, कैशिंग
  • बिना अपाचे के लिए अन्य अनुरोध पारित


यहाँ कैसे मेरी nginx के विन्यास फाइल की तरह लग रहा है:

server { 
    listen 80; 
    server_name MY_DOMAIN_NAME; 

    access_log /var/log/nginx/MY_DOMAIN_NAME.access.log; 

    gzip on; 
    gzip_comp_level 2; 
    gzip_proxied any; 
    gzip_types text/plain text/html text/css text/xml application/xml application/xml+rss application/xml+atom text/javascript application/x-javascript application/javascript; 

    location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ { 
     root /home/www/MY_DOMAIN_NAME; 
     #access_log off; 
     gzip off; 
     expires 1d; 
    } 
    location ~* ^.+\.(css|js)$ { 
     root /home/www/MY_DOMAIN_NAME; 
     #access_log off; 
     expires 1d; 
    } 
    location ~* ^.+\.(pdf|gz|bz2|exe|rar|zip|7z)$ { 
     root /home/www/MY_DOMAIN_NAME; 
     gzip off; 
    } 


    location/{ 
     proxy_pass http://MY_DOMAIN_NAME:8080; 
     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_max_temp_file_size 0; 

     client_max_body_size  10m; 
     client_body_buffer_size 128k; 

     proxy_connect_timeout  90; 
     proxy_send_timeout   90; 
     proxy_read_timeout   90; 

     proxy_buffer_size   4k; 
     proxy_buffers    4 32k; 
     proxy_busy_buffers_size 64k; 
     proxy_temp_file_write_size 64k; 
    } 
} 


अब, क्यों एक ऐसे करना चीज़ ?

खैर, nginx माना जाता है:

  • कम स्मृति
  • जरूरत तेजी से
  • अधिक कनेक्शन

तो, मैं इसे एक वेबसाइट पर मदद कर सकता है लगता है संभालने में सक्षम हो अपाचे पर रखे गए भार को कम करने के लिए, यातायात के साथ।

+0

का उपयोग करता हूं ठीक है शायद मेरा प्रश्न इतना स्पष्ट नहीं था। लेकिन यह अब मेरे पास सेटअप है। यह मेरे पहले पैराग्राफ में समझाया गया है। लेकिन अब मैं अपनी स्थिर फाइलों को दूसरे डोमेन पर ले जा रहा हूं। इस तरह मैं जिन स्रोतों का उपयोग करता हूं, वे और भी ड्रॉप करते हैं। लेकिन मैं क्या जानना चाहता था कि अगर मुझे अभी भी निगेंक्स की ज़रूरत है। –

2

आप अपाचे उदाहरणों से एसएसएल प्रोसेसिंग को ऑफ़लोड करने के लिए nginx का भी उपयोग कर सकते हैं।

उदाहरण के लिए, हमारे पास nginx-> haproxy-> अपाचे सर्वर के पूल के साथ कॉन्फ़िगर किया गया एक स्टैक है। nginx और haproxy एक दिल की धड़कन क्लस्टर पर एक साथ रहते हैं और बैकएंड पर अपाचे बॉक्स के पूल में फ़ीड अनुरोध करते हैं। हम nginx frontend पर सभी SSL certs इंस्टॉल करते हैं।

14

हाँ आपको अपाचे के सामने बिल्कुल nginx की आवश्यकता है। अपाचे प्रति कनेक्शन 1 धागा या प्रक्रिया का उपयोग करता है। इनमें से प्रत्येक धागे स्मृति पर कब्जा करते हैं। यदि आपके पास अपनी वेबसाइट पर आने वाले कुछ सौ लोग हैं और आपके पास रखरखाव सक्षम है, तो इनमें से प्रत्येक ब्राउज़र आपके सर्वर पर अपाचे प्रक्रिया या थ्रेड व्यस्त व्यस्त स्मृति रखेगा।

आप अपने अपाचे सर्वर पर रखरखाव को अक्षम करके इस पर काम कर सकते हैं लेकिन यह आपकी वेबसाइट के प्रदर्शन को धीमा कर देता है क्योंकि ब्राउज़र कनेक्शन का पुन: उपयोग नहीं कर सकता है।

तो इसके बजाय आप nginx को रिवर्स प्रॉक्सी के रूप में रखरखाव सक्षम के साथ उपयोग करते हैं। यह एक छोटे से स्मृति पदचिह्न (लगभग 8 मेग्स) के साथ हजारों कनेक्शन बनाए रख सकता है। चूंकि nginx आपके अपाचे सर्वर के लिए स्थानीय है क्योंकि प्रत्येक अनुरोध केवल कुछ माइक्रोसेकंड के लिए अपाचे बच्चे या थ्रेड पर कब्जा करता है। इसका मतलब है कि आप हजारों लोगों को केवल अपाचे प्रक्रियाओं के एक छोटे से मुट्ठी भर के साथ सेवा कर सकते हैं।

इसके अलावा nginx की कॉन्फ़िगरेशन अपाचे से अधिक लचीला है और इसे फ्रंट एंड पर रखने से यह आपको बहुत लचीलापन देता है।

+1

यह तकनीकी परिप्रेक्ष्य से स्पष्ट रूप से सबसे अच्छा जवाब है। आप प्री-फोर्क अपाचे का उपयोग करके अपने क्लाइंट कनेक्शन को संभालने वाले प्री-फोर्क अपाचे नहीं चाहते हैं। निश्चित रूप से, आप रख-रखाव को अक्षम कर सकते हैं, तो आपके सभी उपयोगकर्ता शिकायत करेंगे कि आपकी साइट धीमी है (विशेष रूप से दूर उपयोगकर्ता)। – diq

+0

बहुत अच्छा जवाब है, लेकिन nginx कर सकते हैं सभी अन्य उपहारों को मत भूलना। इस सवाल के लिए बहुत प्रासंगिक कैशिंग होगा। गतिशील सामग्री का कैशिंग आगे समझ जाएगा (जहां संभव हो)। तो हाँ, nginx मदद करेगा ... बहुत। –

संबंधित मुद्दे