Hvernig á að setja saman Nginx frá uppruna á CentOS 7

NGINX er hægt að nota sem HTTP/HTTPS þjón, öfugur proxy þjónn, póst proxy þjónn, álagsjafnari, TLS terminator eða skyndiminni miðlara. Það er alveg mát að hönnun. Það hefur innfæddar einingar og þriðja aðila einingar búnar til af samfélaginu. Það er skrifað á C forritunarmálinu og er mjög fljótur og léttur hugbúnaður.

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.

Það er tiltölulega „auðvelt“ að setja upp NGINX frá frumkóða - halaðu niður nýjustu útgáfunni af NGINX frumkóðanum, stilltu, byggðu og settu hann upp.

Í þessari kennslu mun ég nota aðalútgáfuna , sem er 1.13.2 þegar þetta er skrifað. Uppfærðu útgáfunúmer í samræmi við það þegar nýrri útgáfur verða fáanlegar.

Kröfur til að byggja NGINX frá uppruna

Lögboðnar kröfur:

  • OpenSSL bókasafnsútgáfa á milli 1.0.2 - 1.1.0
  • zlib bókasafnsútgáfa á milli 1.1.3 - 1.2.11
  • PCRE bókasafnsútgáfa á milli 4.4 - 8.40
  • GCC þýðandi

Valkvæðar kröfur:

Áður en þú byrjar

  1. Búðu til venjulegan notanda með sudoaðgangi .
  2. Skiptu yfir í nýja notandann:

    su - <username>
    
  3. Uppfæra kerfi:

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

Byggðu NGINX frá uppruna

  1. Settu upp „Þróunarverkfæri“ og Vim ritstjóra:

    sudo yum groupinstall -y 'Development Tools' && sudo yum install -y vim
    
  2. Settu upp aukapakka fyrir Enterprise Linux (EPEL):

    sudo yum install -y epel-release
    
  3. Hladdu niður og settu upp valfrjálsa NGINX ósjálfstæði:

    sudo yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel
    
  4. Sæktu nýjustu aðalútgáfuna af NGINX frumkóða og dragðu hann út:

    wget https://nginx.org/download/nginx-1.13.2.tar.gz && tar zxvf nginx-1.13.2.tar.gz
    
  5. Sæktu frumkóða NGINX ósjálfstæðis og dragðu þá út:

    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. Fjarlægðu allar .tar.gzskrár. Við þurfum þá ekki lengur:

    rm -rf *.tar.gz
    
  7. Farðu í NGINX upprunaskrána:

    cd ~/nginx-1.13.2
    
  8. Til góðs, skráðu nginx frumkóðaskrár og möppur:

    ls
    # auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
    
  9. Afritaðu NGINX handbókarsíðuna á /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. Fyrir hjálp geturðu skráð tiltæka stillingarrofa með því að keyra:

    ./configure --help
    # To see want core modules can be build as dynamic run:
    ./configure --help | grep -F =dynamic
    
  11. Stilltu, settu saman og settu upp 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. Tákntengill /usr/lib64/nginx/modulesí /etc/nginx/modulesmöppu, svo að þú getir hlaðið kvikum einingum í nginx uppsetningu eins og þessa load_module modules/ngx_foo_module.so;:

    sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules
    
  13. Prentaðu NGINX útgáfuna, þýðandaútgáfuna og stilltu forskriftarfæribreytur:

    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. Búðu til NGINX kerfisnotandann og hópinn:

    sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
    
  15. Athugaðu setningafræði og hugsanlegar villur:

    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. Búðu til systemd einingaskrá fyrir nginx:

    sudo vim /usr/lib/systemd/system/nginx.service
    
  17. Afritaðu/límdu eftirfarandi efni:

    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. Ræstu og virkjaðu NGINX þjónustuna:

    sudo systemctl start nginx.service && sudo systemctl enable nginx.service
    
  19. Athugaðu hvort NGINX ræsist eftir endurræsingu:

    sudo systemctl is-enabled nginx.service
    # enabled
    
  20. Athugaðu hvort NGINX sé í gangi:

    sudo systemctl status nginx.service
    ps aux | grep nginx
    curl -I 127.0.0.1
    
  21. Endurræstu VPS til að staðfesta að NGINX ræsist sjálfkrafa:

    sudo shutdown -r now
    
  22. Fjarlægðu archaic skrár úr /etc/nginxmöppunni:

    sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
    
  23. Settu setningafræði auðkenningu á NGINX uppsetningu fyrir vimí ~/.vim/. Þú munt fá góða setningafræði auðkenningu þegar þú breytir NGINX stillingarskrá:

    mkdir ~/.vim/
    cp -r ~/nginx-1.13.2/contrib/vim/* ~/.vim/
    
  24. Fjarlægðu allar .defaultöryggisafrit af /etc/nginx/:

    sudo rm /etc/nginx/*.default
    

Niðurstaða

Það er það. Þú hefur nú nýjustu útgáfuna af NGINX uppsett. Það er sett saman á kyrrstöðu gegn nokkrum mikilvægum bókasöfnum eins og OpenSSL. Oft er kerfis OpenSSL útgáfan úrelt. Með því að nota þessa uppsetningaraðferð með nýrri útgáfu af OpenSSL geturðu nýtt þér nýjar dulmál eins CHACHA20_POLY1305og og samskiptareglur eins og TLS 1.3 sem verða fáanlegar í OpenSSL 1.1.1(sem hefur ekki verið gefið út þegar þetta er skrifað).

Skildu eftir athugasemd

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Gervigreind er ekki í framtíðinni, hún er hér í nútímanum Í þessu bloggi Lestu hvernig gervigreindarforrit hafa haft áhrif á ýmsa geira.

DDOS árásir: Stutt yfirlit

DDOS árásir: Stutt yfirlit

Ertu líka fórnarlamb DDOS árása og ruglaður með forvarnaraðferðirnar? Lestu þessa grein til að leysa spurningar þínar.

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Hefur þú einhvern tíma velt því fyrir þér hvernig tölvuþrjótar græða peninga?

Þú gætir hafa heyrt að tölvuþrjótar græða mikið af peningum, en hefur þú einhvern tíma velt því fyrir þér hvernig þeir vinna sér inn svona peninga? við skulum ræða.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Byltingarkenndar uppfinningar frá Google sem munu auðvelda lífi þínu.

Viltu sjá byltingarkenndar uppfinningar frá Google og hvernig þessar uppfinningar breyttu lífi hvers manns í dag? Lestu síðan til að blogga til að sjá uppfinningar frá Google.

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Föstudagur Nauðsynlegur: Hvað varð um gervigreindardrifna bíla?

Hugmyndin um að sjálfkeyrandi bílar fari á göturnar með hjálp gervigreindar er draumur sem við höfum átt um tíma núna. En þrátt fyrir nokkur loforð eru þau hvergi sjáanleg. Lestu þetta blogg til að læra meira…

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Tæknileg sérkenni: Fjarlæg framtíð mannlegrar siðmenningar?

Þar sem vísindin þróast hratt og taka yfir mikið af viðleitni okkar, eykst hættan á því að verða fyrir óútskýranlegri einstæðu. Lestu, hvað sérkenni gæti þýtt fyrir okkur.

Virkni Big Data Reference Architecture Layers

Virkni Big Data Reference Architecture Layers

Lestu bloggið til að þekkja mismunandi lög í Big Data Architecture og virkni þeirra á einfaldasta hátt.

Þróun gagnageymslu – Infographic

Þróun gagnageymslu – Infographic

Geymsluaðferðir gagna hafa verið að þróast gæti verið frá fæðingu gagna. Þetta blogg fjallar um þróun gagnageymslu á grundvelli upplýsingamynda.

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

6 ótrúlegir kostir þess að hafa snjall heimilistæki í lífi okkar

Í þessum stafræna heimi hafa snjallheimilistæki orðið afgerandi hluti af lífi. Hér eru nokkrir ótrúlegir kostir snjallheimatækja um hvernig þau gera líf okkar þess virði að lifa því og einfaldara.

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

macOS Catalina 10.15.4 viðbót uppfærsla veldur fleiri vandamálum en að leysa

Nýlega gaf Apple út macOS Catalina 10.15.4 viðbótaruppfærslu til að laga vandamál en svo virðist sem uppfærslan sé að valda fleiri vandamálum sem leiða til múrsteins á Mac vélum. Lestu þessa grein til að læra meira