कुछ IIS7 web.config संपीड़न सेटिंग्स के साथ मदद चाहिए


9

मैं अपने web.config फ़ाइल में अपने IIS7 संपीड़न सेटिंग्स को कॉन्फ़िगर करने की कोशिश कर रहा हूं। मैं HTTP 1.0 अनुरोधों को gzip करने में सक्षम करने का प्रयास कर रहा हूं।

MSDN के पास इसके बारे में पूरी जानकारी है

क्या मेरी अपनी वेबसाइट के web.config फ़ाइल में इस विन्यास जानकारी का होना संभव है? या क्या मुझे इसे एप्लिकेशन स्तर पर सेट करने की आवश्यकता है? वर्तमान में, मेरे पास यह कोड मेरे web.config में है ...

<system.webServer>
    <urlCompression 
        doDynamicCompression="true" 
        dynamicCompressionBeforeCache="true" />
    <httpCompression 
        cacheControlHeader="max-age=86400" 
        noCompressionForHttp10="False" 
        noCompressionForProxies="False" 
        sendCacheHeaders="true" />

    ... other stuff snipped ...

</system.webServer>

यह काम नहीं कर रहा है :( HTTP 1.1 अनुरोध संकुचित हो रहे हैं, सिर्फ 1.0 नहीं।

ऊपर MSDN पृष्ठ कहता है कि इसका उपयोग इसमें किया जा सकता है: -

  • machine.config
  • ApplicationHost.config
  • रूट एप्लिकेशन Web.config
  • आवेदन Web.config
  • निर्देशिका Web.config

तो, क्या हम इन सेटिंग्स को प्रति-वेबसाइट-आधार पर, प्रोग्रामेटिक रूप से web.config फ़ाइल में सेट कर सकते हैं? (यह एक अनुप्रयोग Web.config फ़ाइल है ...) मैंने क्या गलत किया है?

चीयर्स :)

संपादित करें: मुझसे पूछा गया था कि मुझे कैसे पता है कि HTTP1.0 संकुचित नहीं हो रहा है। मैं असफल अनुरोध अनुरेखण नियमों का उपयोग कर रहा हूं, जो वापस रिपोर्ट करता है: -

DYNAMIC_COMPRESSION_START
DYNAMIC_COMPRESSION_NOT_SUCESS
    Reason: 3
    Reason: NO_COMPRESSION_10
DYNAMIC_COMPRESSION_END

जवाबों:


3

इस तथ्य पर ध्यान दें कि IIS 7.x web.config की सेटिंग

noCompressionForProxies="false"

Web.config स्तर पर सम्मानित नहीं किया जाता है। इसे C: \ Windows \ System32 \ inetsrv \ config \ ApplicationHost.config में सेट किया जाना चाहिए:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="False">

सुनिश्चित करें और सेटिंग बदलने के बाद IIS रीसेट करें।

एक अनुरोध IIS से एक प्रॉक्सी से होना निर्धारित किया जाता है यदि क्लाइंट के वेब अनुरोध में HTTP "Via" हेडर है जैसे:

Via: 1.1 foo

आप appcmdएप्लिकेशन स्तर सेटिंग सेट करने के लिए भी उपयोग कर सकते हैं (जो संभवतः बहुत आसान है)।
प्योर.क्रोम

2

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

जैसे। appcmd set config -section:urlCompression /doDynamicCompression:true

refrences:


1

आप कैसे परीक्षण कर रहे हैं कि HTTP1.0 अनुरोध संकुचित नहीं हो रहे हैं? क्या ऐसा हो सकता है कि आप जिस क्लाइंट का उपयोग कर रहे हैं, वह सर्वर को यह नहीं बता रहा है कि वह संकुचित प्रतिक्रिया स्वीकार कर सकता है?

यदि आप क्लाइंट द्वारा भेजे गए हेडर को देख सकते हैं (परीक्षण क्लाइंट द्वारा प्रस्तुत किया गया है, तो फायरबग या इसी तरह का उपयोग करके यदि आप आईई में परीक्षण कर रहे हैं या आईईएचटीटीपीहेडर्स का परीक्षण कर रहे हैं, या एक बाहरी उपकरण का उपयोग करके ट्रैफ़िक को सूँघकर), तो आपको चाहिए कुछ ऐसा देखिए

Accept-Encoding: compress, gzip, deflate

कहीं न कहीं। यदि क्लाइंट सर्वर को सूचित नहीं करता है कि वह संपीड़ित प्रतिक्रिया को स्वीकार कर सकता है, तो सर्वर को कोई फर्क नहीं पड़ेगा कि आपके पास सर्वर की अन्य सेटिंग्स क्या हैं।

एक अन्य समस्या यह हो सकती है कि क्या आप प्रॉक्सी सर्वर के माध्यम से परीक्षण कर रहे हैं जो स्वयं को इस तरह से पहचानता है। इस मामले में noCompressionForProxies सेटिंग पूर्वताप लेने और संपीड़ित प्रतिक्रिया की संभावना को अवरुद्ध कर सकती है।

ध्यान देने वाली एक बात यह है कि कुछ क्लाइंट और प्रॉक्सिस जो HTTP1.0 रिक्वेस्ट (आमतौर पर पुराने सॉफ्टवेयर) भेजते हैं, अगर उन्हें एक मिलता है तो वे कंप्रेस्ड रिस्पांस को सही ढंग से हैंडल नहीं करेंगे, इसलिए यदि आप HTTP1.0 रिस्पॉन्स के लिए कंप्रेशन को इनेबल करते हैं तो सुनिश्चित करें कि आप उन सभी क्लाइंट / प्रॉक्सी सॉफ़्टवेयर में अपनी साइट / एप्लिकेशन का परीक्षण करें जिनकी आप आगंतुकों / उपयोगकर्ताओं से अपेक्षा करते हैं। यह एक समस्या से कम है यदि आप गारंटी दे सकते हैं कि आपके दर्शक कुछ सॉफ़्टवेयर का उपयोग कर रहे होंगे (यदि उदाहरण के लिए ऐप केवल एक आंतरिक कॉर्पोरेट नेटवर्क के लिए है), लेकिन अन्यथा परीक्षण के लिए बहुत सारे संयोजन हैं जिसके कारण अधिकांश सर्वर संपीड़न को अक्षम कर देते हैं 1.0 पूरी तरह से अनुरोध करता है।


मैं परीक्षण कर रहा हूं कि HTTP1.0 अनुरोध विफल अनुरोध अनुरेखण नियमों का उपयोग करके संकुचित नहीं हो रहा है, जो वापस रिपोर्ट करता है: - DYNAMIC_COMPRESSION_START DYNAMIC_COMPRESSION_NOT_SUCESS कारण: 3 कारण: NO_COMPRESSION_10 DYNAMIC_COMPRESSION_END
Pure.Krome
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.