केवल स्थैतिक सामग्री परोसने वाली साइट के लिए IIS 7.5 अनुकूलन


21

मैं एक वेब-एप्लिकेशन के लिए स्थिर सामग्री परोसने के लिए कुकी-मुक्त डोमेन सेटअप करना चाह रहा हूं, जो http://sstatic.net/ साइट के समान है जो स्टैक एक्सचेंज साइट्स का उपयोग करता है।

मेरा सवाल यह है कि ऐसे डोमेन के लिए मैं अपने IIS 7.5 सेटअप में क्या अनुकूलन कर सकता हूं? उदाहरण के लिए, यह स्थैतिक सामग्री परोसने के लिए कभी भी जिम्मेदार नहीं होगा, इसलिए ASP.NET एकीकरण को अक्षम करना इस साइट के लिए एक अच्छा कदम होगा?

IIS 7.5 के साथ ऐसी साइट की स्थापना पर कोई सुझाव या संदर्भ सबसे स्वागत योग्य होगा।

संपादित करें

बस स्पष्ट करने के लिए, यह सर्वर पर केवल साइट नहीं है, इसलिए सुझाए गए अनुकूलन साइट स्तर को लक्षित करना चाहिए, न कि सर्वर-स्तरीय कॉन्फ़िगरेशन।

जवाबों:


18

इसमें कई विचार हैं, कुछ जिन्हें IIS (HTTP संपीड़न, कैशिंग हेडर fx) पर संभाला जाता है, और कुछ जिन्हें निर्माण प्रक्रिया के दौरान / तैनाती से पहले संभाला जाता है (जैसे जावास्क्रिप्ट और सीएसएस फ़ाइल संघनन और व्हाट्सएप माइनिफिकेशन)।

जैसे, आपको एक उत्तर में पूरा रडाउन देना थोड़ा कठिन है, क्योंकि इसमें से कुछ आपके बिल्ड और रिलीज़ के तरीकों पर निर्भर करेगा। उच्च स्तरीय चरणों में:

  • साइट एक नया डोमेन का उपयोग करके आप के द्वारा "cookieless" है, एक है जो आपके webapplication से बंधा नहीं है। चूंकि आप डोमेन के लिए कोई कुकीज़ सेट नहीं कर रहे हैं (fx .NET एप्लीकेशन कोड का उपयोग करके), तो यह "कुकलेस" है।

  • आपको स्थिर टेक्स्ट सामग्री जैसे जावास्क्रिप्ट और सीएसएस के लिए HTTP संपीड़न को पूरी तरह से सक्षम करना चाहिए ।

  • मैं सबसे बड़ा IIS प्रशासक नहीं हूं, लेकिन जहां तक ​​मैं बता सकता हूं, आपको केवल मूल "वेब सर्वर (IIS)" सर्वर भूमिका से जुड़े डिफ़ॉल्ट IIS घटकों की आवश्यकता है ।

  • आपको स्थैतिक सामग्री के लिए लंबे कैशिंग हेडर को पूरी तरह से सक्षम करना चाहिए । सामान्य सिफारिश 31 दिनों की है, लेकिन आप इसे उच्च या निम्न सेट कर सकते हैं। याद रखें, यदि आप लंबे कैश हेडर के साथ स्टेटिक कंटेंट परोसते हैं, तो आपको क्लाइंट द्वारा पुराने कैश्ड कंटेंट को फिर से इस्तेमाल किए जाने से बचने के लिए, URL बदलना होगा।

  • आपको HTTP की-सजीव (कैशिंग हेडर के रूप में एक ही डॉक्स) को सक्षम करना चाहिए

इसके अलावा, प्री-डेप्लॉयमेंट कार्य हैं, जैसे कि व्हाट्सएप को जावास्क्रिप्ट और सीएसएस को संपीड़ित करना , और आदर्श रूप से पीएनजी के बेहतर को संपीड़ित करना आदि। यह आपके विकास उपकरण थे और चक्र का निर्माण तय करने में मदद करता है कि कैसे आगे बढ़ें।

जब आप कर लें, तो YSlow सक्षम के साथ अपने स्थिर सर्वर से कुछ फ़ाइलों को डाउनलोड करने का प्रयास करें । मुझे लगता है कि "क्लासिक V2" का नियम प्रयास के लिए सबसे बड़ा प्रभाव देता है, इसलिए मैं इस YSlow नियम के खिलाफ आपके स्कोर की जांच करने का सुझाव दूंगा।

"क्लासिक V2" नियम में, ये नियम आपके स्थैतिक सर्वर IIS इंस्टेंस और सामग्री पर साफ-साफ लागू होते हैं:

3. Add an Expires or a Cache-Control Header
4. Gzip Components
10. Minify JavaScript and CSS
11. Avoid Redirects
13. Configure ETags
19. Use Cookie-Free Domains for Components
22. Make favicon.ico Small and Cacheable

आपकी टिप्पणियों के लिए धन्यवाद: मैंने पहले से ही आपके द्वारा नोट किए गए पूर्व-उत्पादन विचारों का ध्यान रखा है। आईआईएस कॉन्फिग की नॉटी ग्रिट्टी के बाद मैं वास्तव में क्या हूं। चूंकि स्थैतिक सामग्री के अलावा कुछ भी नहीं है, मुझे लगता है कि मैं http पाइप लाइन आदि से बहुत सी चीजें निकाल सकता हूं
DanP

1
@ दान: वास्तव में IIS स्थापित करने में इतना काम नहीं है। Microsoft न्यूनतम "कॉन्फ़िगरेशन" द्वारा सुरक्षित रूप से शिपिंग में अच्छा हो रहा है। मूल सर्वर रोल का हिस्सा हैं जो IIS घटकों को निकालकर प्रदर्शन-ऑप्टिमाइज़ेशन IMHO समयपूर्व अनुकूलन है। मैं लगभग गारंटी दे सकता हूं कि प्रदर्शन लाभ के लायक नहीं होगा, क्योंकि स्थैतिक फ़ाइल सेवारत में आमतौर पर मामूली सर्वर लोड होता है। अंतिम उपयोगकर्ता प्रदर्शन के लिए, महत्वपूर्ण भाग HTTP सिमेंटिक्स को सही पा रहा है - ऊपर दिए गए डॉक्स के अनुसार हेडर, कम्प्रेशन, कीपैलिव को कैशिंग करना।
जेस्पर एम

डिफॉल्ट्स को स्टैटिक फाइल सर्विंग के लिए डिज़ाइन किया गया है - यदि आप सिर्फ वेब सर्वर की भूमिका को जोड़ते हैं, तो आप स्टैटिक फाइल्स को सर्व करने के लिए एक न्यूनतम पाइपलाइन के साथ सेट होते हैं। इसलिए, पाइपलाइन को कम करने के लिए - कुछ और स्थापित न करें!
TristanK

@TristanK: मुझे लगता है कि मुझे अधिक विशिष्ट होना चाहिए ... यह केवल IIS सर्वर पर साइट नहीं है, इसलिए मुझे साइट स्तर पर अपने अनुकूलन करने की आवश्यकता है, न कि सर्वर स्तर।
DanP

हाँ, यह थोड़े महत्वपूर्ण जानकारी है। यदि आपने तय कर लिया है कि यह आपका चुना हुआ रास्ता है, तो मुझे लगता है कि ए) इसकी तुलना करने के लिए एक नया स्थापित करता है, बी) किसी भी मॉड्यूल / हैंडलर को चिह्नित करना चाहते हैं (जो कि डिफ़ॉल्ट इंस्टॉल का हिस्सा नहीं है) पूर्व शर्त के साथ = " AppPoolName! = StaticPool "(वहाँ सिंटैक्स पीछे हो सकता है)। किसी दिए गए ऐप पूल में मॉड्यूल को शामिल / बहिष्कृत करना बहुत अधिक है।
ट्रिस्टनके

9

यहाँ एक बहुत ही दिलचस्प लेखन है जहाँ कोई स्थिर फ़ाइलों की सेवा के लिए IIS का उपयोग कर रहा है। यह मुख्य रूप से डिस्क गतिविधि (जो उसकी अड़चन थी) को सीमित करने के लिए IIS फ़ाइल कैशिंग सेटिंग्स को ट्विक करने पर केंद्रित है। वह कहते हैं कि उन्होंने प्रदर्शन में 20 गुना वृद्धि देखी है।

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