نحوه تهیه Nginx از منبع در فدورا 25

NGINX می تواند به عنوان سرور HTTP / HTTPS ، سرور پروکسی معکوس ، سرور پروکسی پست الکترونیکی ، متعادل کننده بار ، ترمینال TLS یا سرور ذخیره کننده استفاده شود. با طراحی کاملاً مدولار است. این ماژول های بومی و ماژول های شخص ثالث ایجاد شده توسط جامعه است. نوشتن به زبان برنامه نویسی C ، این نرم افزار بسیار سریع و سبک است.

توجه : NGINX دارای دو جریان نسخه است که به صورت موازی اجرا می شوند - پایدار و خط اصلی . هر دو نسخه را می توان در سرور تولید استفاده کرد. توصیه می شود از نسخه اصلی در تولید استفاده کنید.

نصب NGINX از کد منبع نسبتاً "آسان" است - آخرین نسخه کد منبع NGINX را بارگیری کنید ، پیکربندی ، ساخت و نصب کنید.

در این آموزش از نسخه اصلی استفاده می کنم که در زمان نوشتن 1.13.3 است. مطابق با دسترسی نسخه های جدیدتر ، تعداد نسخه ها را به روز کنید.

مورد نیاز برای ساخت NGINX از منبع

الزامات اجباری:

  • نسخه کتابخانه OpenSSL بین 1.0.2 - 1.1.0
  • نسخه کتابخانه zlib بین 1.1.3 - 1.2.11
  • نسخه کتابخانه PCRE بین 4.4 - 8.41
  • کامپایلر GCC

الزامات اختیاری:

قبل از اینکه شروع کنی

  1. با sudoدسترسی منظم کاربر را ایجاد کنید :

  2. تغییر به کاربر جدید:

    su - <username>
    
  3. سیستم بروزرسانی:

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

NGINX را از مبدا بسازید

  1. "ابزارهای توسعه" ، ویرایشگر Vim ، 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. بررسی کنید که NGINX بعد از راه اندازی مجدد راه اندازی می شود:

    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. راه اندازی مجدد VPS خود را برای تأیید اینکه NGINX به طور خودکار شروع به کار می کند:

    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 نصب شده است. این استاتیک در برابر برخی از کتابخانه های مهم مانند OpenSSL گردآوری شده است. اغلب ، نسخه OpenSSL سیستم منسوخ شده است. با استفاده از این روش نصب با نسخه جدیدتر OpenSSL می توانید از رمزگذارهای جدید مانند CHACHA20_POLY1305پروتکل هایی مانند TLS 1.3 که در OpenSSL موجود است 1.1.1(که در زمان نوشتن منتشر نشده است) استفاده کنید.



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد