Hvernig á að setja saman Nginx frá uppruna á Ubuntu 16.04

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.1 þ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 apt update && sudo apt upgrade -y
    

Byggðu NGINX frá uppruna

  1. NGINX er forrit skrifað í C, þannig að við þurfum að setja upp C þýðanda (GCC).

    sudo apt install build-essential -y
    
  2. Sæktu nýjustu útgáfuna af NGINX frumkóðanum og dragðu hann út:

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

    NGINX depends on 3 libraries: PCRE, zlib and OpenSSL:

    # PCRE version 4.4 - 8.40
    wget https://ftp.pcre.org/pub/pcre/pcre-8.40.tar.gz && tar xzvf pcre-8.40.tar.gz
    
    # zlib version 1.1.3 - 1.2.11
    wget http://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
    
    # OpenSSL version 1.0.2 - 1.1.0
    wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz && tar xzvf openssl-1.1.0f.tar.gz
    
  4. Fjarlægðu allar .tar.gzskrár. Við þurfum þá ekki lengur:

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

    cd ~/nginx-1.13.1
    
  6. Fyrir hjálp geturðu skráð tiltæka stillingarrofa með því að keyra:

    ./configure --help
    
  7. Stilltu, settu saman og settu upp NGINX:

    ./configure --prefix=/usr/share/nginx \
                --sbin-path=/usr/sbin/nginx \
                --modules-path=/usr/lib/nginx/modules \
                --conf-path=/etc/nginx/nginx.conf \
                --error-log-path=/var/log/nginx/error.log \
                --http-log-path=/var/log/nginx/access.log \
                --pid-path=/run/nginx.pid \
                --lock-path=/var/lock/nginx.lock \
                --user=www-data \
                --group=www-data \
                --build=Ubuntu \
                --http-client-body-temp-path=/var/lib/nginx/body \
                --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
                --http-proxy-temp-path=/var/lib/nginx/proxy \
                --http-scgi-temp-path=/var/lib/nginx/scgi \
                --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
                --with-openssl=../openssl-1.1.0f \
                --with-openssl-opt=enable-ec_nistp_64_gcc_128 \
                --with-openssl-opt=no-nextprotoneg \
                --with-openssl-opt=no-weak-ssl-ciphers \
                --with-openssl-opt=no-ssl3 \
                --with-pcre=../pcre-8.40 \
                --with-pcre-jit \
                --with-zlib=../zlib-1.2.11 \
                --with-compat \
                --with-file-aio \
                --with-threads \
                --with-http_addition_module \
                --with-http_auth_request_module \
                --with-http_dav_module \
                --with-http_flv_module \
                --with-http_gunzip_module \
                --with-http_gzip_static_module \
                --with-http_mp4_module \
                --with-http_random_index_module \
                --with-http_realip_module \
                --with-http_slice_module \
                --with-http_ssl_module \
                --with-http_sub_module \
                --with-http_stub_status_module \
                --with-http_v2_module \
                --with-http_secure_link_module \
                --with-mail \
                --with-mail_ssl_module \
                --with-stream \
                --with-stream_realip_module \
                --with-stream_ssl_module \
                --with-stream_ssl_preread_module \
                --with-debug \
                --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' \
                --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now'
    make 
    sudo make install
    
  8. Fjarlægðu allar niðurhalaðar skrár úr heimamöppunni, í þessu tilviki /home/username:

    cd ~
    rm -r nginx-1.13.1/ openssl-1.1.0f/ pcre-8.40/ zlib-1.2.11/
    
  9. Athugaðu NGINX útgáfu og samsetningartímavalkosti:

    sudo nginx -v && sudo nginx -V
    
    # nginx version: nginx/1.13.0 (Ubuntu)
    # built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
    # built with OpenSSL 1.1.0f  25 May 2017
    # TLS SNI support enabled
    # configure arguments: --prefix=/etc/nginx . . .
    # . . .
    # . . .
    
  10. Athugaðu setningafræði og hugsanlegar villur:

    sudo nginx -t
    # Will throw this error nginx: [emerg] mkdir() "/var/lib/nginx/body" failed (2: No such file or directory)
    # Just create directory
    mkdir -p /var/lib/nginx && sudo nginx -t
    
  11. Búðu til systemd einingaskrá fyrir NGINX:

    sudo vim /etc/systemd/system/nginx.service
    
  12. 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=A high performance web server and a reverse proxy server
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/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 /run/nginx.pid
    TimeoutStopSec=5
    KillMode=mixed
    
    [Install]
    WantedBy=multi-user.target
    
  13. Ræstu og virkjaðu NGINX þjónustu:

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

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

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

    sudo shutdown -r now
    
  17. Búðu til UFW NGINX umsóknarsnið:

    sudo vim /etc/ufw/applications.d/nginx
    
  18. Afritaðu/límdu eftirfarandi efni:

    [Nginx HTTP]
    title=Web Server (Nginx, HTTP)
    description=Small, but very powerful and efficient web server
    ports=80/tcp
    
    [Nginx HTTPS]
    title=Web Server (Nginx, HTTPS)
    description=Small, but very powerful and efficient web server
    ports=443/tcp
    
    [Nginx Full]
    title=Web Server (Nginx, HTTP + HTTPS)
    description=Small, but very powerful and efficient web server
    ports=80,443/tcp
    
  19. Staðfestu nú að UFW app snið séu búin til og viðurkennd:

    sudo ufw app list
    
    # Available applications:
      # Nginx Full
      # Nginx HTTP
      # Nginx HTTPS
      # OpenSSH
    

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ýja 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).

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