Bearbeiten von „NgInx“

Zur Navigation springen Zur Suche springen

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
[[Kategorie:ServerApplikation]]
[[Kategorie:ServerApplikation]]
= Links =
* https://www.digitalocean.com/community/tutorials/understanding-nginx-server-and-location-block-selection-algorithms


= Installation =
= Installation =
Zeile 11: Zeile 8:
= Konfiguration =
= Konfiguration =
<pre>server {
<pre>server {
  listen 80;
        listen 80;
  server_name emex;
        server_name emex;
  root /home/www/example.org;
        root /home/www/emex;
  index index.php index.html;
        index index.php index.html;
  location /home/www/example.org {
        location /home/www/emex {
    try_files $uri $uri/ /index.php?q=$uri&$args;
                try_files $uri $uri/ /index.php?q=$uri&$args;
  }
        }
  location ~ \.php$ {
        location ~ \.php$ {
    try_files $uri =404;
                try_files $uri =404;
    #try_files $uri $uri/ /public/index.php?$args;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_pass unix:/var/run/php5.6-fpm.sock;
                fastcgi_index index.php;
    fastcgi_index index.php;
                include fastcgi_params;
    include fastcgi_params;
        }
  }
}
</pre>
* Document-Root nach /public verschieben:
<pre>
location / {
    try_files $uri $uri/ @public;
}
location @public {
    rewrite ^ /public$request_uri last;
}
location /public {
    try_files $uri $uri/ @rewrite;
}
location @rewrite {
    rewrite ^(.*)$ /public$1 last;
}
</pre>
* Weiterleitung (reverse proxy):
<pre>server {
  listen 443 ssl http2;
  # ssl_certificate /etc/ssl/certs/example.org.pem;
  # ssl_certificate_key /etc/ssl/private/example.org.key;
 
  server_name example.org www.rete-libera.org;
  root /srv/www/example;
  access_log  /var/log/nginx/a_example.log;
  error_log  /var/log/nginx/e_example.log;
  proxy_ssl_server_name on;
  location /.well-known {
    alias /srv/www/example/.well-known;
    allow all;
  }
  location / {
    proxy_pass https://10.10.10.204;
 
    proxy_set_header Host example.org;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #proxy_http_version 1.1;
    client_body_in_file_only clean;
    client_body_buffer_size 512K;
    client_max_body_size 512M;
    sendfile on;
    send_timeout 600s;
  }
}
}
</pre>
</pre>
Zeile 148: Zeile 99:


= location-Block =
= location-Block =
Der location-Block bezieht sich immer auf ein Verzeichnis. '/' in regulären Ausdrücken ist also immer falsch.
<pre>
<pre>
# Kein Flag : x is prefix of path
# Kein Flag : x is prefix of path
Zeile 160: Zeile 110:
* ~* regulärer Ausdruck, case insensitive
* ~* regulärer Ausdruck, case insensitive
* ^~ inverser regulärer Ausdruck: gewählt, wenn Ausdruck nicht passt
* ^~ inverser regulärer Ausdruck: gewählt, wenn Ausdruck nicht passt
== Wie wertet NGINX die Regeln aus? ==
* Generell: Exakt vor längster Übereinstimmung
* Bei reg. Ausdrücken: Reihenfolge: erster gewinnt. NOT-Regel (^~) gewinnt vor normalen
* Prefix-Regel passt: merken stop
* reg. Ausdruck passt '''innerhalb einer Prefix-Regel''':
** Ja: fertig
** nein: gemerkte Prefix-Regel gilt
= Redirection =
= Redirection =
<pre>
<pre>
# Wenn automatisch nach Domain eingesetzt werden soll:
location /abc
try_files $uri $uri/index.html $uri.html =404;
location / { return 301 https://target.com$uri; }
location /abc { return 301 https://target.com/abc_succ; }
 
</pre>
 
= Eigene 404-Seite und eingebaute Seite =
* Es muss folgende Fehlerseite existieren: /media/data/WebApps/monitor.infeos.eu/404.html
<pre>server {
  listen 10116;
  server_name monitor.infeos.eu;
  root /media/data/WebApps/monitor.infeos.eu;
  location = /works {
    # Es wird nur der Text "works" zurückgegeben:
    return 200 "works";
  }
  location / {
    error_page 404 /404.html;
  }
  location  /404.html {
    # verhindert den direkten Aufruf:
    internal;
  }
}
</pre>
</pre>

Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Info-Theke-Beiträge automatisch unter der „Gemeinfreiheit“ stehen (siehe Info-Theke:Urheberrechte für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)