O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
NGINX poate fi utilizat ca server HTTP / HTTPS, server proxy invers, server proxy de poștă, echilibrator de sarcină, terminator TLS sau server de memorie în cache. Este destul de modular prin design. Are module native și module terțe create de comunitate. Scris în limbajul de programare C, este un software foarte rapid și ușor.
NOTĂ : NGINX are două fluxuri de versiune care rulează în paralel - stabil și mainline . Ambele versiuni pot fi utilizate pe un server de producție. Se recomandă utilizarea versiunii principale în producție.
Instalarea NGINX din codul sursă este relativ „ușoară” - descărcați cea mai recentă versiune a codului sursă NGINX, configurați, construiți și instalați-l.
În acest tutorial, voi folosi versiunea mainline , care este 1.13.2 la momentul scrierii. Actualizați numerele de versiune în consecință atunci când versiunile mai noi devin disponibile.
Cerințe obligatorii:
Cerințe opționale:
Înainte de a începe
sudo
acces .Comutați la noul utilizator:
su - <username>
Sistem de actualizare:
sudo yum check-update || sudo yum update -y
Instalați „Instrumente de dezvoltare” și editor Vim:
sudo yum groupinstall -y 'Development Tools' && sudo yum install -y vim
Instalați pachete suplimentare pentru Enterprise Linux (EPEL):
sudo yum install -y epel-release
Descărcați și instalați dependențe opționale NGINX:
sudo yum install -y perl perl-devel perl-ExtUtils-Embed libxslt libxslt-devel libxml2 libxml2-devel gd gd-devel GeoIP GeoIP-devel
Descărcați cea mai recentă versiune principală a codului sursă NGINX și extrageți-l:
wget https://nginx.org/download/nginx-1.13.2.tar.gz && tar zxvf nginx-1.13.2.tar.gz
Descărcați codul sursă al dependențelor NGINX și extrageți-le:
# 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
Eliminați toate .tar.gz
fișierele. Nu mai avem nevoie de ele:
rm -rf *.tar.gz
Accesați directorul sursă NGINX:
cd ~/nginx-1.13.2
Pentru o măsură bună, listați fișierele și directoarele codului sursă nginx:
ls
# auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
Copiați pagina manuală NGINX pe /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
Pentru ajutor, puteți enumera comutatoarele de configurare disponibile rulând:
./configure --help
# To see want core modules can be build as dynamic run:
./configure --help | grep -F =dynamic
Configurați, compilați și instalați 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
Faceți legătura direct /usr/lib64/nginx/modules
în /etc/nginx/modules
director, astfel încât să puteți încărca module dinamice în configurația nginx astfel load_module modules/ngx_foo_module.so;
:
sudo ln -s /usr/lib64/nginx/modules /etc/nginx/modules
Tipăriți versiunea NGINX, versiunea compilatorului și configurați parametrii scriptului:
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 . . .
# . . .
# . . .
Creați utilizatorul și grupul sistemului NGINX:
sudo useradd --system --home /var/cache/nginx --shell /sbin/nologin --comment "nginx user" --user-group nginx
Verificați sintaxa și erorile potențiale:
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
Creați un fișier unitate de sistem pentru nginx:
sudo vim /usr/lib/systemd/system/nginx.service
Copiați / inserați următorul conținut:
NOTĂ : Locația fișierului PID și a binarului NGINX poate fi diferită în funcție de modul în care a fost compilat NGINX.
[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
Porniți și activați serviciul NGINX:
sudo systemctl start nginx.service && sudo systemctl enable nginx.service
Verificați dacă NGINX va porni după o repornire:
sudo systemctl is-enabled nginx.service
# enabled
Verificați dacă NGINX funcționează:
sudo systemctl status nginx.service
ps aux | grep nginx
curl -I 127.0.0.1
Reporniți VPS pentru a verifica dacă NGINX pornește automat:
sudo shutdown -r now
Ștergeți fișierele arhaice din /etc/nginx
director:
sudo rm /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf
Locul evidențierea sintaxei de configurare pentru Nginx vim
în ~/.vim/
. Veți obține evidențierea sintaxei frumoase când editați fișierul de configurare NGINX:
mkdir ~/.vim/
cp -r ~/nginx-1.13.2/contrib/vim/* ~/.vim/
Eliminați toate .default
fișierele de rezervă din /etc/nginx/
:
sudo rm /etc/nginx/*.default
Asta e. Acum aveți instalată cea mai nouă versiune de NGINX. Este compilat static cu unele biblioteci importante, cum ar fi OpenSSL. Adesea, versiunea OpenSSL a sistemului este depășită. Folosind această metodă de instalare cu o versiune mai nouă a OpenSSL, puteți profita de noile cifre precum CHACHA20_POLY1305
și protocoale precum TLS 1.3, care vor fi disponibile în OpenSSL 1.1.1
(care nu a fost lansat la momentul scrierii).
O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1
Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.
Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.
Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.
Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.
CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?
Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.
Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!
Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.
Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe