NGINX HTTP webserveren er et av de mest populære alternativene til Apache, samtidig som den har som mål å være høy ytelse, svært konfigurerbar og fleksibel med mye støtte.
nginx daemonen drives
av root bruker, men delprosesser
kjøres som en vanlig bruker og gruppe, som må opprettes. Opprett
følgende gruppe og bruker ved å bruke følgende kommandoer som
root bruker:
groupadd -g 25 nginx &&
useradd -c "NGINX Web Server" -g nginx \
-s /bin/false -u 25 nginx
Installer NGINX ved å kjøre følgende kommandoer:
./configure --prefix=/etc/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib/nginx/modules \
--pid-path=/run/nginx.pid \
--lock-path=/run/lock/nginx.lock \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=stderr \
--http-client-body-temp-path=/var/lib/nginx/client-body \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
--user=nginx \
--group=nginx \
--with-compat \
--with-threads \
--with-pcre-jit \
--with-file-aio \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_degradation_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_perl_module=dynamic \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-http_v3_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_ssl_preread_module &&
make
Hvis kildekoden ble klonet og ikke hentet via tarballen, vil
configure skriptet være på auto/configure.
Nå, som root bruker:
make install && mkdir -pv /var/lib/nginx && install -vDm644 man/nginx.8 -t /usr/share/man/man8/
--prefix=/etc/nginx: I
motsetning til andre pakkebygg som setter prefikset til
/usr, dette prefikset er satt
annerledes, slik at alle konfigurasjonsfilene plasseres og sjekkes
i en fornuftig katalogstruktur/plassering.
--conf-path=/etc/nginx/nginx.conf
Denne parameteren sørger for at hovedkonfigurasjonsfilen for NGINX
daemonen er i /etc/nginx.
--sbin-path=/usr/sbin/nginx: Denne
parameteren sikrer at nginx ikke blir installert i
/etc.
--http-*-path=*: Disse
parameterne sikrer at de midlertidige NGINX tilstandsmappene og
loggføringen er på riktige steder.
--{user,group}=nginx: Disse
parameterne overfører delprosessansvar til nginx bruker og gruppe. Hvis disse ikke er
spesifisert, vil de respektive verdiene være nobody og nogroup.
--with-*_module{,=dynamic}:
Disse parameterne bygger moduler som ikke er aktivert som standard,
men som kan være veldig nyttige. De som kan bygges dynamisk, kan
det. De fleste kan ikke det.
Det meste av konfigurasjonen gjøres i /etc/nginx/nginx.conf. Stier til innhold som
skal serveres er ikke hardkodet, og du kan spesifisere hvor
viktig HTML er. Du bør lese NGINX beginner's
guide for å lære hvordan du konfigurerer NGINX daemonen.
Hvis du ønsker Apache stil håndtering av HTML stier per bruker,
kan du gjøre noe slikt i /etc/nginx/nginx.conf:
server {
location ~ ^/~(.+?)(/.*)?$ {
alias /home/$1/public_html$2;
index index.html index.htm;
autoindex on;
}
}
For å starte nginx
daemonen automatisk når systemet startes på nytt, installer en
Systemd enhet og aktiver den som root bruker:
cat > /usr/lib/systemd/system/nginx.service << "EOF" &&
[Unit]
Description=NGINX Web Server
After=network-online.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStart=/usr/sbin/nginx
ExecStop=/usr/sbin/nginx -s stop
ExecReload=/usr/sbin/nginx -s reload
PrivateTmp=true
SyslogLevel=err
[Install]
WantedBy=multi-user.target
EOF
systemctl enable nginx