Zum Inhalt

01. März 2024 · Server & Hosting · 3 Min. Lesezeit

Cheatsheet für nginx

Meine nginx-Kurzreferenz für Installation, Verwaltung, Verzeichnisse, HTTPS und Dateiberechtigungen.

Installation

Ubuntu und Debian

bash
sudo apt update && sudo apt install nginx

CentOS

bash
sudo yum install nginx

nginx-Befehle

nginx starten

bash
sudo systemctl start nginx

nginx stoppen

bash
sudo systemctl stop nginx

nginx neu starten

bash
sudo systemctl restart nginx

nginx-Konfiguration neu laden

bash
sudo systemctl reload nginx

Status prüfen

bash
sudo systemctl status nginx

Konfiguration testen

bash
sudo nginx -t

Wichtige Verzeichnisse

  • /etc/nginx/nginx.conf – Hauptkonfigurationsdatei
  • /etc/nginx/sites-available/ – verfügbare Seitenkonfigurationen
  • /etc/nginx/sites-enabled/ – aktivierte Seitenkonfigurationen
  • /var/log/nginx/access.log – Zugriffsprotokoll
  • /var/log/nginx/error.log – Fehlerprotokoll

Beispiel: Einfacher Reverse Proxy

Der folgende Ausschnitt stammt aus meiner ursprünglichen Notiz. Er ist unvollständig und noch keine direkt verwendbare Konfiguration.

nginx
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;

Beispiel: Statische Webseite hosten

Auch dieser Ausschnitt ist unvollständig und muss vor der Verwendung vervollständigt werden.

nginx
server {
    listen 80;
    server_name example.com;

    root /var/www/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;

SSL mit Let's Encrypt

Certbot und das nginx-Plugin installieren:

bash
sudo apt install certbot python3-certbot-nginx

Certbot für die gewünschten Domains ausführen:

bash
sudo certbot --nginx -d example.com -d www.example.com

Konfiguration neu laden

bash
sudo systemctl reload nginx

Eigentümer des Webroot-Verzeichnisses festlegen

bash
sudo chown -R www-data /var/www/html/meine-beispielseite.ch

Berechtigungen vergeben

Rekursive Berechtigungsvergabe aus der ursprünglichen Notiz

bash
sudo chmod -R 755 /var/www/html/mein-beispielseite.ch

Dateiberechtigungen aus der ursprünglichen Notiz

bash
sudo chmod 644 /var/www/html/meine-beispielseite.ch/*