Az AlmaLinux saját tárolójában lévő Nginx stabil, de nem a legújabb: AlmaLinux 10-en a teszt idején az 1.26.3-as verzió volt benne. Az Nginx fejlesztői (nginx.org) saját tárolót tartanak fenn a Red Hat-alapú rendszerekhez, két ággal:
- stable: a stabil ág, csak hibajavításokat kap (a teszt idején 1.30.6);
- mainline: a fejlesztési ág, ebbe kerülnek először az új funkciók és a hibajavítások (a teszt idején 1.31.8).
Az Nginx fejlesztői maguk is a mainline ágat ajánlják általános használatra: rendszeresen, kis lépésekben frissül, és a hibajavítások is előbb jelennek meg benne. A stable ág akkor jó választás, ha a lehető legritkábban szeretne változást.
A lépéseket 2026 októberében AlmaLinux 10.2 rendszeren próbáltuk ki; AlmaLinux 9-en ugyanígy működnek. A parancsokat root felhasználóként vagy sudo-val futtassa.
1. A tároló beállítása
Hozza létre a /etc/yum.repos.d/nginx.repo fájlt (például sudo nano /etc/yum.repos.d/nginx.repo) ezzel a tartalommal:
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=https://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Az URL-ben a centos nem tévedés: az nginx.org ezen a néven adja a Red Hat-kompatibilis rendszerek csomagjait, és a $releasever AlmaLinuxon a főverziót (9 vagy 10) adja. Az nginx.org saját leírása http:// címet ad meg; a teszten a https:// is működött, ezt ajánljuk. A csomagokat a gpgcheck=1 miatt a dnf mindkét esetben aláírás alapján ellenőrzi. A module_hotfixes=true AlmaLinux 9-en számít: ha ott a rendszer nginx modulja (dnf module list nginx) engedélyezve van, e nélkül a modul eltakarná a tároló csomagjait.
2. A mainline ág bekapcsolása
sudo dnf config-manager --set-enabled nginx-mainline
Ezzel mindkét ág engedélyezve van, és a dnf a magasabb verziót, vagyis a mainline-t választja. Ha a stable ágat szeretné, ezt a lépést hagyja ki.
Az elérhető verziók:
dnf list --showduplicates nginx
3. Telepítés
sudo dnf install nginx
Az első telepítéskor a dnf az nginx.org aláírókulcsainak importálását kéri. A teszten három kulcsot hozott le a https://nginx.org/keys/nginx_signing.key címről, ezekkel az ujjlenyomatokkal:
8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46
573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3
Vesse össze őket az nginx.org Linux-csomagokról szóló oldalán közölt ujjlenyomatokkal, és ha egyeznek, fogadja el (y).
4. Indítás és ellenőrzés
sudo systemctl enable --now nginx
nginx -v
curl -sI http://localhost | head -2
nginx version: nginx/1.31.8
HTTP/1.1 200 OK
Server: nginx/1.31.8
Ha a szerveren fut a firewalld, nyissa meg a webes portokat (sudo firewall-cmd --permanent --add-service=http --add-service=https, majd sudo firewall-cmd --reload), lásd: Hogyan állítsak be tűzfalat a VPS-emen?
Az nginx.org csomagja HTTP/2 és HTTP/3 (QUIC) támogatással készül; a fordítási beállításokat az nginx -V sorolja fel (--with-http_v2_module, --with-http_v3_module).
Ha már telepítve van az AlmaLinux Nginx-e
Ha a szerveren az AppStream tárolóból telepített Nginx fut, a dnf upgrade nginx a tároló beállítása után sem cseréli le, hanem hibával áll le:
Error: Transaction test error:
file /etc/nginx/nginx.conf from install of nginx-2:1.31.8-1.el10.ngx.aarch64 conflicts with file from package nginx-core-2:1.26.3-6.el10_2.7.aarch64
A két csomag más felépítésű (az AlmaLinux Nginx-e nginx és nginx-core csomagra van bontva), ezért a régit el kell távolítani. A sorrend:
sudo cp -a /etc/nginx /root/nginx-mentes
sudo dnf remove nginx nginx-core
sudo dnf install nginx
sudo systemctl enable --now nginx
Az első sor elmenti a teljes beállítást: az eltávolítás a módosítatlan konfigurációs fájlokat (például az alap nginx.conf-ot) törli, és a nginx.org csomagja a sajátját hozza helyette. A conf.d könyvtár saját .conf fájljai a teszten a helyükön maradtak, de az ellenőrzés előtt vesse össze őket a mentéssel. Az nginx-filesystem csomag a gépen marad, a PHP-FPM csomagja függ tőle.
Különbségek az AlmaLinux Nginx-éhez képest
- A virtuális hostok helye ugyanaz: a
/etc/nginx/conf.d/könyvtár*.conffájljai. A tárolóval jön egydefault.conf, amely alocalhostnevű alapoldalt szolgálja ki. - A szolgáltatás
nginxfelhasználóval fut, a munkafolyamatok számaworker_processes auto;, vagyis processzormagonként egy. - Nincs
/etc/nginx/default.d/beolvasás. Az AlmaLinuxphp-fpmcsomagja ide teszi a PHP-beállítást (php.conf), de a nginx.orgnginx.conf-ja ezt a könyvtárat nem olvassa be, ezért a PHP-t mindenserverblokkban magának kell bekötnie (lásd lent). - A SELinux-szal együttműködik: a
/var/wwwalatti fájlokat gond nélkül kiszolgálta, és a szerver újraindítása után is magától elindult (a/run/nginx.pidcímkéjehttpd_var_run_tvolt, SELinux-tiltás nem került a naplóba). Néhány leírás ehhez különtmpfiles.dbeállítást ajánl; AlmaLinux 10.2-n erre nem volt szükség. Más könyvtárnál lásd: SELinux: miért kapok „Permission denied” hibát?
PHP-FPM bekötése
A PHP-FPM telepítését a PHP telepítése AlmaLinux 9 és 10 rendszeren cikk írja le. Egy domain beállítása, például a /etc/nginx/conf.d/pelda.hu.conf fájlban:
server {
listen 80;
server_name pelda.hu www.pelda.hu;
root /var/www/pelda.hu/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
A try_files $uri $uri/ /index.php?$args; sor a WordPress és a legtöbb PHP-keretrendszer szép URL-jeihez kell. A PHP-FPM alapbeállítása (listen.acl_users = apache,nginx) megengedi, hogy az nginx felhasználó a sockethez kapcsolódjon, ezért a jogosultságokon nem kell állítani.
Ellenőrzés és újratöltés:
sudo nginx -t
sudo systemctl reload nginx
curl -s -H "Host: pelda.hu" http://localhost/
A teszten a curl a PHP verzióját és az fpm-fcgi futtatási módot adta vissza. A HTTPS-hez igényeljen Let’s Encrypt tanúsítványt: Let’s Encrypt tanúsítvány igénylése Certbottal. A Certbot Nginx-bővítménye az EPEL-ben van (python3-certbot-nginx).
Frissítés
Az nginx.org Nginx-e a rendszer többi csomagjával együtt frissül:
sudo dnf upgrade nginx
A csomag frissítéskor megpróbálja menet közben átváltani a futó szervert az új binárisra, de a teszten ez nem történt meg: a csomagcsere után az nginx -v már az új verziót mutatta, a futó szerver Server fejléce (curl -sI http://localhost) viszont még a régit. Frissítés után ezért ellenőrizze a beállítást, és indítsa újra a szolgáltatást:
sudo nginx -t && sudo systemctl restart nginx
Vissza a stable ágra
sudo dnf config-manager --set-disabled nginx-mainline
sudo dnf distro-sync nginx
A teszten a distro-sync az 1.31.8-as mainline-t az 1.30.6-os stable verzióra cserélte (Downgrading); utána itt is indítsa újra a szolgáltatást. Ha az AlmaLinux saját Nginx-ére szeretne visszatérni, törölje a nginx.repo fájlt, és telepítse újra az nginx csomagot (előtte itt is mentse a /etc/nginx könyvtárat).
Ha a 80-as port foglalt
Ha az Nginx nem indul, és a naplóban bind() to 0.0.0.0:80 failed (98: Address already in use) áll, egy másik program, jellemzően az Apache foglalja a portot. Nézze meg, melyik:
sudo ss -tlnp | grep ':80 '
Ha a users oszlopban httpd áll, állítsa le és tiltsa le az Apache-ot (sudo systemctl disable --now httpd), vagy tegye az egyik webszervert másik portra.
Eltávolítás
sudo systemctl disable --now nginx
sudo dnf remove nginx
sudo rm /etc/yum.repos.d/nginx.repo
A /etc/nginx könyvtárban a módosított beállítások és a saját virtuális hostok megmaradhatnak; ha már nincs rájuk szükség, mentés után törölje őket.
Melyik szerverre?
Saját Nginx-szel egy KVM VPS vagy dedikált szerver üzemeltethető; ezeken root hozzáféréssel bármelyik webszervert telepítheti. Ha Nginx helyett Apache-ot szeretne, azt az Apache és PHP-FPM telepítése cikk írja le.
