Dieses Paket stellt den Webserver nginx (Engine X) zur Verfügung. Dabei wird nginx nicht primär als wirklicher Webserver bereitgestellt, sondern nur die Funktionalitäten Load Balancer und Reverse Proxy können über die Eisfair-1 Konfigurationsschicht parametrisiert werden. Ein echter Webserver kann aber manuell über Erstellung der entsprechenden Konfigurationsdatei realisiert werden.
Die nginx Dokumentation ist unter http://nginx.org/ verfügbar.
Das nginx Paket bietet die Möglichkeit einen Load Balancer oder einen Reverse Proxy zu realisieren.
Das Paket benötigt folgendes Paket: libpcre.
Es ist auch davon abhängig, dass eine aktuelle Version des Basissystems
installiert ist.
Das nginx Paket wird über das Setup-Menü im Untermenü ”Package administration” installiert.
Das nginx Menü ist über den Menüpunkt ”Service administration”
des Hauptmenüs im zentralen Setup-Programm zu erreichen.
Es ist wie folgt aufgebaut:
1. | View documentaion | ||
2. | View changes | ||
3. | View nginx logfiles | ||
4. | Edit configuration | ||
5. | Advanced configuration file handling | ||
6. | Start nginx | ||
7. | Stop nginx | ||
8. | Restart nginx | ||
9. | Reload nginx configuration | ||
10. | Show nginx status | ||
11. | Test nginx configuration | ||
12. | Edit nginx configuration directly | ||
13. | Check nginx module dependencies | ||
0. | Exit |
Die Konfiguration kann über den Menüpunkt ”Edit Configuration” geändert werden. Standardmäßig wird dabei der Editor genutzt, der über den Menüpunkt ”Set eisfair configuration editor” in der ”Base configuration” eingestellt ist.
Nachdem der Editor beendet wurde wird die Konfiguration mit dem eischk-Programm automatisch auf syntaktische und teilweise auch auf semantische Fehler geprüft. Werden Fehler festgestellt, so werden diese gemeldet und der Benutzer zur Korrektur aufgefordert. Wird eine solche Korrektur nicht durchgeführt, so kann es zu unvorhersehbaren Fehlfunktionen bei dem Dienst kommen.
Es wird zusätzlich gefragt, ob die Konfiguration angewendet
(aktiviert) werden soll. Wird dieses verneint, so unterbleibt die
Aktivierung.
ACHTUNG
Beim nächsten Boot-Vorgang kann es in diesem
Fall zu unvorhersehbaren Fehlern kommen.
Wird die Aktivierung bestätigt, werden über ein Skript die durchgeführten Änderungen wirksam gemacht. Dazu wird der nginx Dienst gestoppt und neu gestartet.
Die Konfigurationsdatei (/etc/config.d/nginx) enthält in einer Reihe von Abschnitten die Parameter, die den Dienst parametrisieren bzw. festlegen, ob der Dienst überhaupt zur Verfügung gestellt wird oder nicht.
Gültige Werte: yes, no
Standardeinstellung: START_NGINX='no'
Gültige Werte: yes, no
Standardeinstellung: NGINX_MAN_CONFIG='no'
reverse_proxy | nginx arbeitet als Reverse Proxy | ||
load_balancer | nginx arbeitet als Load Balancer |
Eine Konfiguration für den Typ Web-Server wird möglichweise in der Zukunft möglich sein. Man muss NGINX_MAN_CONFIG='yes' benutzen, um einen Web-Server konfigurieren zu können. Will man saubere Ergebnisse erhalten, wenn eine Reihe von Hosts beim Load Balancing genutzt werden, so muss darauf geachtet werden, dass alle Hosts einen identischen Web-Inhalt (web content) haben.
Gültige Werte: reverse_proxy, load_balancer
Standardeinstellung: NGINX_SERVER_TYPE='reverse_proxy'
Gültige Werte: Zahl oder 'auto'
Standardeinstellung: NGINX_WORKER_PROCESSES='auto'
Gültige Werte: Zahl
Standardeinstellung: NGINX_WORKER_CONNECTIONS='1024'
Gültige Werte: Zahl
Standardeinstellung: NGINX_SERVER_LISTEN_N='1'
Beispiele:
127.0.0.1:8000 | |||
127.0.0.1 | |||
8000 | |||
*:8000 | |||
localhost:8000 |
IPv6 Addressen können in eckigen Klammern angegegeben werden:
[::]:8000 | |||
[::1] |
Ein UNIX-domain socket wird wie folgt angegeben:
unix:/var/run/nginx_sock |
Standardeinstellung: NGINX_SERVER_LISTEN_='80'
Standardeinstellung: NGINX_SERVER_NAME='localhost'
Standardeinstellung: NGINX_ERROR_LOG='error.log'
Über NGINX_ACCESS_LOG='off' kann das Logging ausgeschaltet werden.
Standardeinstellung: NGINX_ACCESS_LOG='access.log'
Gültige Werte: yes, no
Standardeinstellung: NGINX_LOGANON='no'
Gültige Werte: 16Bit, 24Bit
Standardeinstellung: NGINX_LOGANON_MODE='16Bit'
Standardeinstellung: NGINX_ROTATE_LOGS='yes'
Standardeinstellung: NGINX_LOGROTATE_INTERVAL='daily'
Das Stub Status Modul liefert auf einer Webseite Informationen über den nginx Server aus.
Standardeinstellung: NGINX_STUB_STATUS_LOAD='no'
Standardeinstellung: NGINX_STUB_STATUS_LOCATION='/basic_status'
Standardeinstellung: NGINX_PROXY_BUFFERING='off'
Standardeinstellung: NGINX_PROXY_PASS_URL='http://mydestination:80'
Standardeinstellung: NGINX_UPSTREAM_NAME='myupstream'
Standardeinstellung: NGINX_LB_SERVER_N='0'
Angabein wie bei NGINX_SERVER_LISTEN sind möglich.
Gültige Werte: Zahl
Standardeinstellung: NGINX_LB_SERVER_x_WEIGHT='1'
Standardeinstellung: NGINX_LB_SERVER_x_MAX_FAILS='1'
Standardeinstellung: NGINX_LB_SERVER_x_FAIL_TIMEOUT='10'
Standardeinstellung: NGINX_LB_SERVER_x_BACKUP='no'
Mit folgenden Einstellungen wurde der nginx übersetzt (eigentlich konfiguriert):
--prefix= --sbin-path=/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/lib/nginx/tmp/ --http-proxy-temp-path=/var/lib/nginx/proxy/ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi/ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi/ --http-scgi-temp-path=/var/lib/nginx/scgi/ --user=nginx --group=nginx --modules-path=/var/lib/nginx/modules --with-pcre-jit --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-file-aio --with-http_ssl_module --with-http_stub_status_module --with-mail=dynamic --with-mail_ssl_module --with-http_v2_module --with-stream=dynamic --with-http_auth_request_module --with-debug
Ein erster lokaler Test von nginx kann durch die Nutzung als reiner Webserver erfolgen. Hier sind dann keine weiteren Server erforderlich.
Vorgehensweise:
1.) cd /etc/nginx
2.) cp nginx.conf.default nginx.conf
3.) Konfiguration ändern
START_NGINX='yes'
NGINX_MAN_CONFIG='yes'
4.) Im Browser
http://<name des eisservers> oder
http://<ip des eisservers>
Die sog. Welcome Seite von nginx wird angezeigt:
Welcome to nginx!