Kuidas kompileerida Nginxi allikast CentOS 7-s

NGINX-i saab kasutada HTTP/HTTPS-serverina, pöördpuhverserverina, meilipuhverserverina, koormuse tasakaalustajana, TLS-i lõpetajana või vahemällu salvestava serverina. See on disainilt üsna modulaarne. Sellel on kogukonna loodud algmoodulid ja kolmanda osapoole moodulid. Programmeerimiskeeles C kirjutatud on see väga kiire ja kerge tarkvara.

NOTE: NGINX has two version streams that run in parallel - stable and mainline. Both versions can be used on a production server. It is recommended to use the mainline version in production.

NGINX-i installimine lähtekoodist on suhteliselt "lihtne" – laadige alla NGINX-i lähtekoodi uusim versioon, seadistage, koostage ja installige.

Sel juhendaja, ma kasutan põhilistele versioon, mis on 1.13.2 ajal kirjalikult. Värskendage versiooninumbreid vastavalt, kui uuemad versioonid on saadaval.

Nõuded NGINX-i allikast ehitamiseks

Kohustuslikud nõuded:

  • OpenSSL-i teegi versioon vahemikus 1.0.2–1.1.0
  • zlib teegi versioon vahemikus 1.1.3–1.2.11
  • PCRE teegi versioon vahemikus 4.4–8.40
  • GCC kompilaator

Valikulised nõuded:

Enne alustamist

  1. Looge tavakasutaja sudojuurdepääsuga .
  2. Lülitumine uuele kasutajale:

    su - <username>
    
  3. Uuenda süsteemi:

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

Ehitage NGINX allikast

  1. Installige "Arendustööriistad" ja Vim-redaktor:

    sudo yum groupinstall -y 'Development Tools' && sudo yum install -y vim
    
  2. Installige Enterprise Linuxi (EPEL) lisapaketid:

    sudo yum install -y epel-release
    
  3. Laadige alla ja installige valikulised NGINX-i sõltuvused:

    sudo yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel
    
  4. Lae alla uusim põhilistele versioon nginx lähtekoodi ja selle kaevandamiseks:

    wget https://nginx.org/download/nginx-1.13.2.tar.gz && tar zxvf nginx-1.13.2.tar.gz
    
  5. Laadige alla NGINX-i sõltuvuste lähtekood ja eraldage need:

    NGINX depends on 3 libraries: PCRE, zlib and 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. Eemaldage kõik .tar.gzfailid. Me ei vaja neid enam:

    rm -rf *.tar.gz
    
  7. Minge NGINX-i lähtekataloogi:

    cd ~/nginx-1.13.2
    
  8. Hea mõõtmise huvides loetlege nginxi lähtekoodi failid ja kataloogid:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  9. Kopeerige NGINX-i käsiraamatu leht asukohta /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. Abi saamiseks saate loetleda saadaolevad konfiguratsioonilülitid, käivitades:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  11. Konfigureerige, kompileerige ja installige 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=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. Symlinki /usr/lib64/nginx/moduleset /etc/nginx/moduleskataloog, nii et saate laadida dünaamiline moodulite nginx konfiguratsiooni niimoodi load_module modules/ngx_foo_module.so;:

    sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules
    
  13. Printige NGINX-i versioon, kompilaatori versioon ja konfigureerige skripti parameetrid:

    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. Looge NGINX süsteemi kasutaja ja rühm:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  15. Kontrollige süntaksit ja võimalikke vigu:

    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. Looge nginxi jaoks süsteemiüksuse fail:

    sudo vim /usr/lib/systemd/system/nginx.service
    
  17. Kopeerige/kleepige järgmine sisu:

    NOTE: The location of the PID file and the NGINX binary may be different depending on how NGINX was compiled.

    [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. Käivitage ja lubage NGINX-teenus:

    sudo systemctl start nginx.service && sudo systemctl enable nginx.service
    
  19. Kontrollige, kas NGINX käivitub pärast taaskäivitamist:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  20. Kontrollige, kas NGINX töötab:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  21. Taaskäivitage oma VPS, et kontrollida, kas NGINX käivitub automaatselt:

    sudo shutdown -r now
    
  22. Eemaldage /etc/nginxkataloogist arhailised failid :

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  23. Koht süntaksi esiletõstmine nginx konfiguratsiooni vimarvesse ~/.vim/. NGINX-i konfiguratsioonifaili redigeerimisel saate kena süntaksi esiletõstmise:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.2/contrib/vim/* ~/.vim/
    
  24. Eemaldage kõik .defaultvarukoopiafailid asukohast /etc/nginx/:

    sudo rm /etc/nginx/*.default
    

Järeldus

See on kõik. Nüüd on teil installitud NGINX-i uusim versioon. See kompileeritakse staatiliselt mõne olulise teeki, näiteks OpenSSL-i vastu. Sageli on süsteemi OpenSSL-i versioon aegunud. Kasutades seda OpenSSL-i uuema versiooniga installimise meetodit, saate kasutada uusi šifreid, CHACHA20_POLY1305nagu TLS 1.3 , ja protokolle, mis on saadaval OpenSSL-is 1.1.1(mida pole kirjutamise ajal välja antud).

CentOS, Linuxi juhendid, süsteemiadministraator, veebiserverid

Jäta kommentaar

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit