CH-J Server Managerserverhåndtering over SSH
Menu
Alle vejledninger og artikler →

Administrér NGINX uden at tage webstedet ned

Sikkerhedskopiér konfigurationen, test den med nginx -t, anvend den med en skånsom genindlæsning, og gendan den tidligere version, hvis noget fejler.

Genindlæs i stedet for at genstarte

En genindlæsning beder NGINX om at læse konfigurationen igen. Den starter nye arbejdsprocesser og lader de gamle afslutte deres åbne anmodninger, så besøgende normalt ikke bemærker noget. Hvis den nye konfiguration ikke kan anvendes, fortsætter NGINX med den gamle. En genstart stopper først tjenesten og afbryder dermed forbindelserne, og tjenesten kan måske ikke starte igen, hvis konfigurationen er forkert.

Sikkerhedskopiér den fil, du ændrer

Lav en kopi ved siden af filen før redigering, og medtag datoen i navnet. Efterlad ikke kopier i en mappe, som NGINX indlæser med et jokertegnsmønster som conf.d/*.conf eller sites-enabled/*, da de også ville blive indlæst. På Debian og Ubuntu skal du redigere filen i sites-available; posten i sites-enabled er normalt kun et link til den.

sudo cp -a /etc/nginx/sites-available/example.conf /root/example.conf.$(date +%Y%m%d-%H%M%S)

Test først, og genindlæs derefter

nginx -t kontrollerer syntaksen og de filer, konfigurationen henviser til, f.eks. certifikater. Brug nginx -T til at se den samlede konfiguration efter indlæsning af inkluderede filer. Genindlæs kun, når testen lykkes; det sikrer du ved at forbinde kommandoerne med &&. Testen kan ikke afgøre, om konfigurationen gør det, du havde til hensigt, så åbn webstedet bagefter.

sudo nginx -t && sudo systemctl reload nginx
sudo nginx -T | less
curl -I https://example.com/

Når noget går galt

Gendan sikkerhedskopien, test igen, og genindlæs. Hvis tjenesten er stoppet, viser fejlloggen og journalen hvorfor. Se efter meddelelser om en port, der allerede er i brug, et manglende certifikat eller et dubleret servernavn.

sudo cp -a /root/example.conf.20261031-120000 /etc/nginx/sites-available/example.conf
sudo nginx -t && sudo systemctl reload nginx
sudo journalctl -u nginx -n 50 --no-pager
sudo tail -n 50 /var/log/nginx/error.log

Hvad en genindlæsning ikke dækker

Langvarige forbindelser som WebSockets forbliver hos de gamle arbejdsprocesser, indtil forbindelserne afsluttes. De gamle processer kan derfor fortsætte et stykke tid og bruge ekstra hukommelse. En pakkeopgradering kan genstarte tjenesten på egen hånd. Test større ændringer på en testserver først, herunder certifikater og omdirigeringer.

NGINX Manager i CH-J Server Manager

NGINX Manager redigerer konfigurationsfiler i de administrerede NGINX-mapper på Linux-servere, op til 512 KiB pr. fil. Når der gemmes, opretter programmet en sikkerhedskopi med suffikset .chj-backup-, kører nginx -t og beholder kun ændringen efter en vellykket test. En genindlæsning kræver din udtrykkelige bekræftelse og kører testen igen, før den begynder. Et aktiveret symbolsk link erstattes ikke; redigér den tilhørende fil i sites-available.

Detaljeret dokumentation

NGINX: Controlling nginx →

NGINX: Beginner's Guide →

Biometrisk oplåsning og sikkerhed →