फेडोरा 25 पर स्रोत से Nginx संकलन कैसे करें

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

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

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

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

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

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

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

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

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

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

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

    sudo dnf check-update || sudo dnf upgrade -y
    

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

  1. "विकास उपकरण" स्थापित करें, विम संपादक, wget और gcc-c ++:

    sudo dnf install -y @development-tools && sudo dnf install -y vim wget gcc-c++
    
  2. NGINX स्रोत कोड का नवीनतम मेनलाइन संस्करण डाउनलोड करें और इसे अनटार करें:

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

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

    # PCRE version 8.41
    wget https://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz && tar xzvf pcre-8.41.tar.gz
    
    # zlib version 1.2.11
    wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
    
    # OpenSSL version 1.1.0f
    wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz
    
  4. वैकल्पिक NGINX निर्भरताएँ डाउनलोड और स्थापित करें:

    # perl
    sudo dnf install -y perl perl-devel perl-ExtUtils-Embed
    
    # libxslt
    sudo dnf install -y libxslt libxslt-devel
    
    # libxml2
    sudo dnf install -y libxml2 libxml2-devel
    
    # libgd
    sudo dnf install -y gd gd-devel
    
    # GeoIP
    sudo dnf install -y GeoIP GeoIP-devel
    
    # Libatomic_Ops
    sudo dnf install -y libatomic_ops libatomic_ops-devel
    
  5. सभी .tar.gzफ़ाइलों को निकालें । हमें अब उनकी आवश्यकता नहीं है:

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

    cd ~/nginx-1.13.3
    
  7. अच्छे उपाय के लिए, NGINX स्रोत कोड फ़ाइलों और निर्देशिकाओं को सूचीबद्ध करें:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  8. NGINX मैनुअल पेज को कॉपी करें /usr/share/man/man8/:

    sudo cp ~/nginx-1.13.3/man/nginx.8 /usr/share/man/man8/
    sudo gzip /usr/share/man/man8/nginx.8
    # Check that Man page for NGINX is working
    man nginx
    
  9. मदद के लिए, आप उपलब्ध कॉन्फ़िगरेशन स्विच को चलाकर सूचीबद्ध कर सकते हैं:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  10. NGINX को कॉन्फ़िगर, संकलित और स्थापित करें:

    ./configure --prefix=/etc/nginx \
                --sbin-path=/usr/sbin/nginx \
                --modules-path=/usr/lib64/nginx/modules \
                --conf-path=/etc/nginx/nginx.conf \
                --error-log-path=/var/log/nginx/error.log \
                --pid-path=/var/run/nginx.pid \
                --lock-path=/var/run/nginx.lock \
                --user=nginx \
                --group=nginx \
                --build=Fedora \
                --builddir=nginx-1.13.3 \
                --with-select_module \
                --with-poll_module \
                --with-threads \
                --with-file-aio \
                --with-http_ssl_module \
                --with-http_v2_module \
                --with-http_realip_module \
                --with-http_addition_module \
                --with-http_xslt_module=dynamic \
                --with-http_image_filter_module=dynamic \
                --with-http_geoip_module=dynamic \
                --with-http_sub_module \
                --with-http_dav_module \
                --with-http_flv_module \
                --with-http_mp4_module \
                --with-http_gunzip_module \
                --with-http_gzip_static_module \
                --with-http_auth_request_module \
                --with-http_random_index_module \
                --with-http_secure_link_module \
                --with-http_degradation_module \
                --with-http_slice_module \
                --with-http_stub_status_module \
                --with-http_perl_module=dynamic \
                --with-perl=/usr/bin/perl \
                --http-log-path=/var/log/nginx/access.log \
                --http-client-body-temp-path=/var/cache/nginx/client_temp \
                --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
                --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
                --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
                --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
                --with-mail=dynamic \
                --with-mail_ssl_module \
                --with-stream=dynamic \
                --with-stream_ssl_module \
                --with-stream_realip_module \
                --with-stream_geoip_module=dynamic \
                --with-stream_ssl_preread_module \
                --with-compat \
                --with-pcre=../pcre-8.41 \
                --with-pcre-jit \
                --with-zlib=../zlib-1.2.11 \
                --with-openssl=../openssl-1.1.0f \
                --with-openssl-opt=no-nextprotoneg \
                --with-debug
    
    make
    sudo make install
    
  11. NGINX संस्करण, संकलक संस्करण मुद्रित करें, और स्क्रिप्ट पैरामीटर कॉन्फ़िगर करें:

    nginx -V
    
    # nginx version: nginx/1.13.3 (Fedora)
    # built by gcc 6.3.1 20161221 (Red Hat 6.3.1-1) (GCC)
    # built with OpenSSL 1.1.0f  25 May 2017
    # TLS SNI support enabled
    # configure arguments: --prefix=/etc/nginx . . .
    # . . .
    
  12. NGINX सिस्टम उपयोगकर्ता और समूह बनाएँ:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  13. सिंटैक्स और संभावित त्रुटियों की जाँच करें:

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

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

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

    [Unit]
    Description=Nginx - A high performance web server and a reverse proxy server
    Documentation=http://nginx.org/en/docs/
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/var/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 /var/run/nginx.pid
    TimeoutStopSec=5
    KillMode=mixed
    
    [Install]
    WantedBy=multi-user.target
    
  16. NGINX प्रारंभ करें:

    sudo systemctl start nginx.service
    
  17. NGINX को बूट पर स्वचालित रूप से शुरू करने के लिए सक्षम करें:

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

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

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

    sudo shutdown -r now
    
  21. /etc/nginx/निर्देशिका से पुरातन फ़ाइलें निकालें :

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  22. प्लेस के लिए nginx विन्यास की फाइलों वाक्य रचना हाइलाइटिंग vimमें ~/.vim/। NGINX कॉन्फ़िगरेशन फ़ाइल संपादित करते समय आपको अच्छा सिंटैक्स हाइलाइटिंग के साथ प्रस्तुत किया जाएगा:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.3/contrib/vim/* ~/.vim/
    
  23. conf.d/निर्देशिका में एक निर्देशिका बनाओ /etc/nginx/। इस निर्देशिका में, आप वर्चुअल सर्वर और अपस्ट्रीम रख सकते हैं:

    sudo mkdir /etc/nginx/conf.d/
    
  24. अपने घर निर्देशिका से निकाले गए निर्देशिकाओं और फ़ाइलों को निकालें:

    rm -rf nginx-1.13.3/ openssl-1.1.0f/ pcre-8.41/ zlib-1.2.11/
    

निष्कर्ष

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

एक टिप्पणी छोड़ें

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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