Ubuntu 16.04 पर स्रोत से Nginx को कैसे संकलित करें

NGINX को HTTP / HTTPS सर्वर, रिवर्स प्रॉक्सी सर्वर, मेल प्रॉक्सी सर्वर, लोड बैलेंसर, TLS टर्मिनेटर या कैशिंग सर्वर के रूप में उपयोग किया जा सकता है। यह डिजाइन द्वारा काफी मॉड्यूलर है। इसमें देशी मॉड्यूल और समुदाय द्वारा निर्मित तृतीय-पक्ष मॉड्यूल हैं। सी प्रोग्रामिंग भाषा में लिखा गया है, यह सॉफ्टवेयर का बहुत तेज और हल्का टुकड़ा है।

नोट : NGINX में दो संस्करण स्ट्रीम हैं जो समानांतर - स्थिर और मेनलाइन में चलते हैं । दोनों संस्करणों का उपयोग उत्पादन सर्वर पर किया जा सकता है। उत्पादन में मेनलाइन संस्करण का उपयोग करने की सिफारिश की जाती है ।

स्रोत कोड से NGINX को स्थापित करना अपेक्षाकृत "आसान" है - NGINX स्रोत कोड का नवीनतम संस्करण डाउनलोड करें, इसे कॉन्फ़िगर करें, बनाएं और इंस्टॉल करें।

इस ट्यूटोरियल में मैं मेनलाइन संस्करण का उपयोग करूंगा , जो कि लेखन के समय 1.13.1 है। नए संस्करण उपलब्ध होने पर तदनुसार संस्करण संख्याओं को अपडेट करें।

स्रोत से NGINX के निर्माण की आवश्यकताएं

अनिवार्य जरूरतें:

वैकल्पिक आवश्यकताओं:

शुरू करने से पहले

  1. पहुँच के साथ नियमित उपयोगकर्ताsudo बनाएँ ।

  2. नए उपयोगकर्ता पर स्विच करें:

    su - <username>
    
  3. अद्यतन प्रणाली:

    sudo apt update && sudo apt upgrade -y
    

स्रोत से NGINX का निर्माण करें

  1. एनजीआईएनएक्स सी में लिखा गया एक प्रोग्राम है, इसलिए हमें सी कंपाइलर (जीसीसी) को स्थापित करने की आवश्यकता है।

    sudo apt install build-essential -y
    
  2. NGINX स्रोत कोड का नवीनतम संस्करण डाउनलोड करें और इसे निकालें:

    wget https://nginx.org/download/nginx-1.13.1.tar.gz && tar zxvf nginx-1.13.1.tar.gz
    
  3. NGINX निर्भरता स्रोत कोड डाउनलोड करें और उन्हें निकालें:

    NGINX 3 पुस्तकालयों पर निर्भर करता है: PCRE , zlib और OpenSSL :

    # PCRE version 4.4 - 8.40
    wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && tar xzvf pcre-8.40.tar.gz
    
    # zlib version 1.1.3 - 1.2.11
    wget http://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
    
    # OpenSSL version 1.0.2 - 1.1.0
    wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz
    
  4. सभी .tar.gzफ़ाइलों को निकालें । हमें अब उनकी आवश्यकता नहीं है:

    rm -rf *.tar.gz
    
  5. NGINX स्रोत निर्देशिका पर जाएं:

    cd ~/nginx-1.13.1
    
  6. मदद के लिए, आप उपलब्ध कॉन्फ़िगरेशन स्विच को चलाकर सूचीबद्ध कर सकते हैं:

    ./configure --help
    
  7. NGINX को कॉन्फ़िगर, संकलित और स्थापित करें:

    ./configure --prefix=/usr/share/nginx \
                --sbin-path=/usr/sbin/nginx \
                --modules-path=/usr/lib/nginx/modules \
                --conf-path=/etc/nginx/nginx.conf \
                --error-log-path=/var/log/nginx/error.log \
                --http-log-path=/var/log/nginx/access.log \
                --pid-path=/run/nginx.pid \
                --lock-path=/var/lock/nginx.lock \
                --user=www-data \
                --group=www-data \
                --build=Ubuntu \
                --http-client-body-temp-path=/var/lib/nginx/body \
                --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
                --http-proxy-temp-path=/var/lib/nginx/proxy \
                --http-scgi-temp-path=/var/lib/nginx/scgi \
                --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
                --with-openssl=../openssl-1.1.0f \
                --with-openssl-opt=enable-ec_nistp_64_gcc_128 \
                --with-openssl-opt=no-nextprotoneg \
                --with-openssl-opt=no-weak-ssl-ciphers \
                --with-openssl-opt=no-ssl3 \
                --with-pcre=../pcre-8.40 \
                --with-pcre-jit \
                --with-zlib=../zlib-1.2.11 \
                --with-compat \
                --with-file-aio \
                --with-threads \
                --with-http_addition_module \
                --with-http_auth_request_module \
                --with-http_dav_module \
                --with-http_flv_module \
                --with-http_gunzip_module \
                --with-http_gzip_static_module \
                --with-http_mp4_module \
                --with-http_random_index_module \
                --with-http_realip_module \
                --with-http_slice_module \
                --with-http_ssl_module \
                --with-http_sub_module \
                --with-http_stub_status_module \
                --with-http_v2_module \
                --with-http_secure_link_module \
                --with-mail \
                --with-mail_ssl_module \
                --with-stream \
                --with-stream_realip_module \
                --with-stream_ssl_module \
                --with-stream_ssl_preread_module \
                --with-debug \
                --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' \
                --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now'
    make 
    sudo make install
    
  8. इस स्थिति में, सभी डाउनलोड की गई फ़ाइलों को होम डाइरेक्टरी से निकालें /home/username:

    cd ~
    rm -r nginx-1.13.1/ openssl-1.1.0f/ pcre-8.40/ zlib-1.2.11/
    
  9. NGINX संस्करण की जाँच करें और समय विकल्प संकलित करें:

    sudo nginx -v && sudo nginx -V
    
    # nginx version: nginx/1.13.0 (Ubuntu)
    # built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
    # built with OpenSSL 1.1.0f  25 May 2017
    # TLS SNI support enabled
    # configure arguments: --prefix=/etc/nginx . . .
    # . . .
    # . . .
    
  10. सिंटैक्स और संभावित त्रुटियों की जाँच करें:

    sudo nginx -t
    # Will throw this error nginx: [emerg] mkdir() "/var/lib/nginx/body" failed (2: No such file or directory)
    # Just create directory
    mkdir -p /var/lib/nginx && sudo nginx -t
    
  11. NGINX के लिए systemd यूनिट फ़ाइल बनाएँ:

    sudo vim /etc/systemd/system/nginx.service
    
  12. निम्नलिखित सामग्री को कॉपी / पेस्ट करें:

    नोट : PID फ़ाइल और NGINX बाइनरी का स्थान भिन्न हो सकता है कि NGINX कैसे संकलित किया गया था, इस पर निर्भर करता है।

    [Unit]
    Description=A high performance web server and a reverse proxy server
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
    ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
    ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
    ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
    TimeoutStopSec=5
    KillMode=mixed
    
    [Install]
    WantedBy=multi-user.target
    
  13. NGINX सेवा शुरू और सक्षम करें:

    sudo systemctl start nginx.service && sudo systemctl enable nginx.service
    
  14. देखें कि रिबूट के बाद एनजीआईएनएक्स स्टार्टअप करेगा या नहीं:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  15. देखें कि क्या NGINX चल रहा है:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  16. NGINX स्वचालित रूप से शुरू होता है यह सत्यापित करने के लिए अपने Ubuntu VPS को रिबूट करें:

    sudo shutdown -r now
    
  17. UFW NGINX एप्लिकेशन प्रोफ़ाइल बनाएं:

    sudo vim /etc/ufw/applications.d/nginx
    
  18. निम्नलिखित सामग्री को कॉपी / पेस्ट करें:

    [Nginx HTTP]
    title=Web Server (Nginx, HTTP)
    description=Small, but very powerful and efficient web server
    ports=80/tcp
    
    [Nginx HTTPS]
    title=Web Server (Nginx, HTTPS)
    description=Small, but very powerful and efficient web server
    ports=443/tcp
    
    [Nginx Full]
    title=Web Server (Nginx, HTTP + HTTPS)
    description=Small, but very powerful and efficient web server
    ports=80,443/tcp
    
  19. अब, सत्यापित करें कि UFW ऐप प्रोफाइल बनाए और मान्यता प्राप्त हैं:

    sudo ufw app list
    
    # Available applications:
      # Nginx Full
      # Nginx HTTP
      # Nginx HTTPS
      # OpenSSH
    

निष्कर्ष

बस। अब आपके पास NGINX का नवीनतम संस्करण स्थापित हो गया है। यह कुछ महत्वपूर्ण पुस्तकालयों जैसे ओपनएसएसएल के खिलाफ सांख्यिकीय रूप से संकलित है। अक्सर, सिस्टम ओपनएसएसएल संस्करण पुराना है। ओपनएसएसएल के एक नए संस्करण के साथ स्थापित करने की इस पद्धति का उपयोग करके, आप टीएलएस 1.3CHACHA20_POLY1305 जैसे नए सिफर और प्रोटोकॉल का लाभ उठा सकते हैं जो ओपनएसएसएल (जो जारी नहीं किया गया है) में उपलब्ध होगा ।1.1.1



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 फ्रेमवर्क पर आधारित है। एक सुरुचिपूर्ण इंटरफ़ेस और एक संक्षिप्त मॉड्यूलर वास्तुकला के साथ