Ubuntu 16.04 पर Nginx में HTTP / 2 सक्षम करें

HTTP / 2 अब अप्रचलित HTTP / 1.1 प्रोटोकॉल का नया संस्करण है जिसे 1999 में वापस मानकीकृत किया गया था। तब से वेब पर बहुत कुछ बदल गया है। हमारे अनुप्रयोग पहले की तुलना में अधिक जटिल हैं, इसलिए इससे निपटने के लिए, अंतर्निहित परिवहन प्रोटोकॉल में परिवर्तन आवश्यक था। HTTP / 2 के बारे में सबसे महत्वपूर्ण बातयह है कि यह आपके वेब पेज को अंतिम उपयोगकर्ताओं के लिए तेज़ बना देगा।

संक्षेप में HTTP / 2 कहते हैं 5 प्रमुख विशेषताएं:

  • एकल, लगातार कनेक्शन
  • बहुसंकेतन
  • हैडर सम्पीडन
  • संसाधन प्राथमिकता
  • ट्रांसपोर्ट लेयर को सुरक्षित करता है (केवल ब्राउज़र के लिए वैध है)

इन सभी विशेषताओं की व्याख्या करना इस ट्यूटोरियल के दायरे से बाहर है, लेकिन यदि आप इस विषय में गहराई से खुदाई करना चाहते हैं, तो मैं उच्च प्रदर्शन ब्राउज़र नेटवर्किंग पुस्तक - HTTP / 2 अंश से अंश की सिफारिश कर सकता हूं ।

इस गाइड में हम Ubuntu 16.04 (Xenial) पर Nginx के नवीनतम स्थिर संस्करण को स्थापित करने जा रहे हैं, स्व-हस्ताक्षरित SSL प्रमाणपत्र उत्पन्न करते हैं, Nginx में HTTP / 2 प्रोटोकॉल को सक्षम elinksकरते हैं और HTTP क्लाइंट के रूप में कार्य करने के लिए पाठ आधारित ब्राउज़र स्थापित करते हैं।

Nginx स्थापित करें

Nginx के नवीनतम स्थिर संस्करण को स्थापित करने के लिए हमें कुछ आदेश जारी करने की आवश्यकता है:

  1. हमें पैकेज और रिपॉजिटरी पर हस्ताक्षर करने के लिए उपयोग किए जाने वाले नग्नेक्स सार्वजनिक पीजीपी कुंजी को डाउनलोड करना होगा और इसे रिपॉजिटरी से डाउनलोड किए गए पैकेजों की प्रामाणिकता को सत्यापित करने के लिए पैकेज मैनेजर द्वारा उपयोग की जाने वाली कीरिंग में जोड़ना होगा।

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. फ़ाइल सिस्टम से PGP कुंजी हटाएँ:

    rm nginx_signing.key
    
  3. नया रिपॉजिटरी जोड़ें

    printf "deb http://nginx.org/packages/ubuntu/ xenial nginx \ndeb-src http://nginx.org/packages/ubuntu/ xenial nginx \n" >> /etc/apt/sources.list.d/nginx.list
    
  4. अपनी पैकेज सूची अपडेट करें और Nginx स्थापित करें:

    apt update && apt install nginx -y
    
  5. Nginx संस्करण को सत्यापित करने के लिए हम निम्नलिखित का उपयोग कर सकते हैं:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    अगर सब ठीक हो जाता है तो आपको कमांड 1.10.xचलाते समय आउटपुट में पैटर्न देखना चाहिए nginx -v

स्व-हस्ताक्षरित प्रमाण पत्र और HTTP / 2

यद्यपि HTTP / 2 युक्ति ब्राउज़रों को HTTP / 2 को TLS पर लागू करने के लिए बाध्य नहीं करती है , सभी प्रमुख ब्राउज़रों ने केवल TLS पर HTTP / 2 को लागू करने का निर्णय लिया है , लेकिन किसी भी TLS संस्करण को, केवल TLS 1.2 या उच्चतर को नहीं।

हम काल्पनिक example.comडोमेन के लिए स्व-हस्ताक्षरित अनुभाग बनाने जा रहे हैं , उत्पादन के लिए आपको वैध डोमेन की आवश्यकता है और विश्वसनीय सीए का उपयोग करें।

  1. निजी कुंजी उत्पन्न करें:

    openssl genrsa -aes128 -out example.com.key 2048
    

    इस कमांड को चलाने के बाद आपको 2 बार पासफ़्रेज़ दर्ज करना होगा। क्योंकि पासफ़्रेज़ कष्टप्रद हैं हम इसे हटाने जा रहे हैं।

  2. निजी कुंजी से पासफ़्रेज़ निकालें:

    openssl rsa -in example.com.key -out example.com.key
    
  3. प्रमाणपत्र हस्ताक्षर अनुरोध (CSR) उत्पन्न करें:

    openssl req -new -sha256 -key example.com.key -out cert-request.csr 
    

    हम एकल-डोमेन प्रमाणपत्र बना रहे हैं, इसलिए हमें example.comडोमेन के बराबर सामान्य नाम फ़ील्ड सेट करने की आवश्यकता है

  4. प्रमाण पत्र बनाएँ:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. प्रमाणपत्र और निजी कुंजी छाँटें:

    mkdir -p /etc/ssl/testing/private && mkdir /etc/ssl/testing/certs
    mv example.com.key /etc/ssl/testing/private && mv example.com.crt /etc/ssl/testing/certs
    
  6. Nginx वर्चुअल होस्ट निर्देशिका बनाएं

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. फिर दौड़ें nano /etc/nginx/nginx.confऔर एक निर्देश खोजें include /etc/nginx/conf.d/*.conf;। इस निर्देश के नीचे include /etc/nginx/sites-enabled/*;सहेजें ( CTRL + O ) जोड़ें और फिर ( CTRL + X ) छोड़ दें ।

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. इस कमांड के साथ डायरेक्टरी के example.com.confअंदर एक फाइल बनाएं और निम्नलिखित कोड को कॉपी / पेस्ट करें:/etc/nginx/sites-availablenano /etc/nginx/sites-available/example.com.conf

    server {
        listen 80;
        listen [::]:80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name example.com;
        root /var/www/html;
        index index.nginx-debian.html;
    
        ssl_certificate /etc/ssl/testing/certs/example.com.crt;
        ssl_certificate_key /etc/ssl/testing/private/example.com.key;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
        ssl_prefer_server_ciphers on;
    }
    

    बधाई हो, अब आपके पास HTTP / 2 सक्षम वेब सर्वर है। HTTPS वर्चुअल होस्ट के अंदर डायरेक्शन में http2पैरामीटर जोड़ने से listenआपको HTTP / 2 सपोर्ट मिलेगा ।

  9. /etc/nginx/sites-available/example.com.confइस आदेश के लिए एक प्रतीकात्मक लिंक बनाएं :

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. टेस्ट कॉन्फ़िगरेशन सिंटैक्स

    nginx -t
    
  11. अपने परिवर्तनों को लागू करने के लिए Nginx को पुनरारंभ करें:

    systemctl restart nginx
    
  12. फ़ाइल में example.comडोमेन जोड़ें/etc/hosts

    echo '127.0.0.1    example.com' >> /etc/hosts
    

अपने वर्चुअल होस्ट का परीक्षण करने के लिए हमें टेक्स्ट-आधारित ब्राउज़र - एलिंक चाहिए।

  1. एलिंक स्थापित करने के लिए निम्नलिखित कमांड का उपयोग करें:

    apt install elinks
    
  2. अपने example.comवर्चुअल होस्ट रन का परीक्षण करने के लिए:

    elinks https://example.com
    
  3. एल्क ब्राउज़र से बाहर निकलने के लिए अपने कीबोर्ड पर q दबाएं और फिर एंटर करें

HTTP / 2 का परीक्षण करें

यह देखने के लिए कि प्रोटोकॉल किस opensslटूल का सबसे आसान तरीका है, टूलकिट का उपयोग करता है।

    openssl s_client -connect example.com:443 -nextprotoneg ''

इस कमांड के आउ��पुट में आपको कुछ इस तरह से देखना चाहिए:

    CONNECTED(00000003)
    Protocols advertised by server: h2, http/1.1      

HTTP / 2 को क्रिया में देखने के लिए आप ब्राउज़र डेवलपर टूल का उपयोग कर सकते हैं। HTTP / 2 प्रोटोकॉल के साथ या तो इंगित किया गया है h2या HTTP/2.0पहचानकर्ता। देव-टूल्स में नेटवर्क पैनल खोलें और अपने पेज को रिफ्रेश करें।

निष्कर्ष

अब आपको पता होना चाहिए कि Nginx कॉन्फ़िगरेशन में HTTP / 2 को कैसे सक्षम करना "आसान" है , लेकिन यह समग्र चित्र का पूरा हिस्सा नहीं है। पहले आपको अपने सर्वर पर टीएलएस / एसएसएल को सक्षम करने के बारे में सोचना चाहिए और मजबूत सिफर सुइट्स के साथ यह सुनिश्चित करना चाहिए कि आप ब्लैकलिस्ट किए गए सिफर का उपयोग नहीं कर रहे हैं । अपने सर्वर पर मजबूत TLS / SSL को सक्षम करने के बाद ही, आप HTTP / 2 को सक्षम करने के बारे में सोचना शुरू कर सकते हैं ।



Leave a Comment

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

Ubuntu 16.04 पर लाइटकार्ट शॉपिंग कार्ट प्लेटफ़ॉर्म कैसे स्थापित करें

LiteCart PHP, jQuery और HTML में लिखा गया एक स्वतंत्र और ओपन सोर्स शॉपिंग कार्ट प्लेटफॉर्म है। यह ई-कॉमर्स सॉफ्टवेअर का उपयोग करने के लिए एक सरल, हल���का और आसान है

डेबियन पर सेटअप NFS शेयर

डेबियन पर सेटअप NFS शेयर

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

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

मोटोमो एनालिटिक्स को फेडोरा 28 पर कैसे स्थापित करें

एक अलग प्रणाली का उपयोग? माटोमो (पूर्व में पिविक) एक ओपन सोर्स एनालिटिक्स प्लेटफॉर्म है, जो गूगल एनालिटिक्स का एक खुला विकल्प है। Matomo स्रोत को होस्ट किया गया है

Linux पर एक TeamTalk Server सेटअप करें

Linux पर एक TeamTalk Server सेटअप करें

टीमटॉक एक कॉन्फ्रेंसिंग प्रणाली है जो उपयोगकर्ताओं को उच्च-गुणवत्ता वाले ऑडियो / वीडियो वार्तालाप, टेक्स्ट चैट, स्थानांतरण फ़ाइलें और स्क्रीन साझा करने की अनुमति देती है। यह मैं

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

विंडोज सर्वर पर Garrys मॉड कैसे स्थापित करें

परिचय यह आलेख बताएगा कि विंडोज सर्वर 2012 पर गारस मोड सर्वर को कैसे डाउनलोड और इंस्टॉल किया जाए। यह गाइड गहराई में होने के लिए बनाया गया है।

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

कैसे स्थापित करें और अपने CentOS 7 सर्वर पर CyberPanel कॉन्फ़िगर करें

एक अलग प्रणाली का उपयोग? परिचय CyberPanel बाजार पर पहला नियंत्रण पैनल है जो दोनों खुला स्रोत है और OpenLiteSpeed ​​का उपयोग करता है। क्या थी?

CentOS पर FFmpeg कैसे स्थापित करें

CentOS पर FFmpeg कैसे स्थापित करें

FFmpeg ऑडियो और वीडियो रिकॉर्ड करने, कन्वर्ट करने और स्ट्रीम करने के लिए एक लोकप्रिय ओपन सोर्स समाधान है, जो सभी प्रकार की ऑनलाइन स्ट्रीमिंग सेवाओं में व्यापक रूप से उपयोग किया जाता है। मैं

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

SSH का उपयोग करके LUKS डिस्क एन्क्रिप्शन पर LVM को दूरस्थ रूप से अनलॉक करने के लिए CentOS 7 स्थापित और सेटअप करें

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

अपने Vultr VPS को कैसे एक्सेस करें

अपने Vultr VPS को कैसे एक्सेस करें

Vultr अपने VPS को कॉन्फ़िगर करने, स्थापित करने और उपयोग करने के लिए कई अलग-अलग तरीके प्रदान करता है। क्रेडेंशियल एक्सेस करें आपके VPS के लिए डिफ़ॉल्ट एक्सेस क्रेडेंशियल ar

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

CentOS 7 पर अक्टूबर CMS को कैसे स्थापित करें

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