CentOS 7de Kaynaktan Nginx Nasıl Derlenir

NGINX , bir HTTP / HTTPS sunucusu, ters proxy sunucusu, posta proxy sunucusu, yük dengeleyici, TLS sonlandırıcı veya önbellek sunucusu olarak kullanılabilir. Tasarım açısından oldukça modülerdir. Topluluk tarafından oluşturulan yerel modüller ve üçüncü taraf modülleri vardır. C programlama dilinde yazılan bu yazılım çok hızlı ve hafif bir yazılımdır.

NOT : NGINX'in paralel çalışan iki sürüm akışı vardır - kararlı ve ana hat . Her iki sürüm de bir üretim sunucusunda kullanılabilir. Üretimde ana hat versiyonunun kullanılması tavsiye edilir .

NGINX'i kaynak kodundan yüklemek nispeten "kolaydır" - NGINX kaynak kodunun en son sürümünü indirin, yapılandırın, derleyin ve yükleyin.

Bu derste, yazarken 1.13.2 olan ana sürüm sürümünü kullanacağım . Daha yeni sürümler çıktığında sürüm numaralarını uygun şekilde güncelleyin.

Kaynaktan NGINX oluşturma gereksinimleri

Zorunlu gereklilikler:

  • 1.0.2 - 1.1.0 arasında OpenSSL kitaplığı sürümü
  • 1.1.3 - 1.2.11 arasındaki zlib kütüphanesi sürümü
  • PCRE kütüphane sürümü 4.4 - 8.40 arasında
  • GCC Derleyici

İsteğe bağlı gereksinimler:

Sen başlamadan önce

  1. Create ile normal bir kullanıcı sudoerişimi .
  2. Yeni kullanıcıya geç:

    su - <username>
    
  3. Güncelleme sistemi:

    sudo yum check-update || sudo yum update -y
    

Kaynaktan NGINX oluşturun

  1. "Geliştirme Araçları" ve Vim düzenleyicisini yükleyin:

    sudo yum groupinstall -y 'Development Tools' && sudo yum install -y vim
    
  2. Enterprise Linux (EPEL) için Ekstra Paketler Kurun:

    sudo yum install -y epel-release
    
  3. İsteğe bağlı NGINX bağımlılıklarını indirip yükleyin:

    sudo yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel
    
  4. NGINX kaynak kodunun en son ana sürümünü indirin ve çıkarın:

    wget https://nginx.org/download/nginx-1.13.2.tar.gz && tar zxvf nginx-1.13.2.tar.gz
    
  5. NGINX bağımlılıklarının kaynak kodunu indirin ve çıkarın:

    NGINX 3 kütüphaneye bağlıdır: PCRE , zlib ve OpenSSL :

    # PCRE version 8.40
    wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && tar xzvf pcre-8.40.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
    
  6. Tüm .tar.gzdosyaları kaldırın . Artık onlara ihtiyacımız yok:

    rm -rf *.tar.gz
    
  7. NGINX kaynak dizinine gidin:

    cd ~/nginx-1.13.2
    
  8. İyi bir ölçü için, nginx kaynak kodu dosyalarını ve dizinlerini listeleyin:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  9. NGINX kılavuz sayfasını şuraya kopyalayın /usr/share/man/man8:

    sudo cp ~/nginx-1.13.2/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
    
  10. Yardım için, aşağıdaki yapılandırma anahtarlarını çalıştırarak listeleyebilirsiniz:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  11. NGINX'i yapılandırın, derleyin ve yükleyin:

    ./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=CentOS \
                --builddir=nginx-1.13.2 \
                --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 \
                --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.40 \
                --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
    
  12. Dinamik modülleri nginx yapılandırmasında aşağıdaki gibi yükleyebilmeniz /usr/lib64/nginx/modulesiçin /etc/nginx/modulesdizine symlink ekleyin load_module modules/ngx_foo_module.so;:

    sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules
    
  13. NGINX sürümünü, derleyici sürümünü yazdırın ve kod parametrelerini yapılandırın:

    sudo nginx -V
    
    # nginx version: nginx/1.13.2 (CentOS)
    # built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
    # built with OpenSSL 1.1.0f  25 May 2017
    # TLS SNI support enabled
    # configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx . . .
    # . . .
    # . . .
    
  14. NGINX sistemi kullanıcısını ve grubunu oluşturun:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  15. Sözdizimini ve olası hataları kontrol edin:

    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
    
  16. Nginx için bir systemd birim dosyası oluşturun:

    sudo vim /usr/lib/systemd/system/nginx.service
    
  17. Aşağıdaki içeriği kopyalayın / yapıştırın:

    NOT : PID dosyasının ve NGINX ikili dosyasının konumu, NGINX'in derlenme şekline bağlı olarak farklı olabilir.

    [Unit]
    Description=nginx - high performance web server
    Documentation=https://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
    ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    
  18. NGINX hizmetini başlatın ve etkinleştirin:

    sudo systemctl start nginx.service && sudo systemctl enable nginx.service
    
  19. Yeniden başlatma sonrasında NGINX'in başlatılıp başlatılmayacağını kontrol edin:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  20. NGINX'in çalışıp çalışmadığını kontrol edin:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  21. NGINX'in otomatik olarak başladığını doğrulamak için VPS'nizi yeniden başlatın:

    sudo shutdown -r now
    
  22. Arkaik dosyaları dizinden kaldırın /etc/nginx:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  23. İçin nginx yapılandırma vurgulayarak Yeri sözdizimi vimiçine ~/.vim/. NGINX yapılandırma dosyasını düzenlerken güzel sözdizimi vurgulaması alacaksınız:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.2/contrib/vim/* ~/.vim/
    
  24. Tüm .defaultyedek dosyaları şuradan kaldır /etc/nginx/:

    sudo rm /etc/nginx/*.default
    

Sonuç

Bu kadar. Artık NGINX'in en yeni sürümüne sahipsiniz. OpenSSL gibi bazı önemli kütüphanelere karşı statik olarak derlenmiştir. Genellikle, sistem OpenSSL sürümü eskidir. OpenSSL'nin daha yeni bir sürümüyle bu yükleme yöntemini kullanarak, TLS 1.3CHACHA20_POLY1305 gibi yeni şifrelerden ve OpenSSL'de (yazma sırasında piyasaya sürülmemiş olan) kullanılabilecek protokollerden yararlanabilirsiniz .1.1.1

Yorum bırak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.