Crmgo Blog

Nginx

Nginx

Nginx ist ein hochperformanter HTTP-Server mit weiteren Funktionen. Aufgrund der Leistungsfähigkeit und des Speichermanagements ist er eine ideale Wahl für den Einsatz auf OpenWRT. Installationshinweis: Nginx ist in der Barrier-Breaker-Version nicht vorcompiliert. Lesen Sie die Hinweise. Lösung: Entweder…

Nginx

Nginx ist ein High-Performance-HTTP-Server mit weiteren Funktionen. Aufgrund der Leistungsfähigkeit und des Speichermanagements ist er eine ideale Wahl für den Einsatz auf OpenWRT.

Installation

opkg update
opkg install php5-fastcgi nginx

Hinweis: nginx ist in der Barrier-Breaker-Version nicht vorcompiliert. Lesen Sie die Hinweise.

Lösung: Versuchen Sie entweder, force-depends auf das heruntergeladene Paket aus Attitude Adjustment anzuwenden, oder kompilieren Sie es für Ihr spezifisches Gerät neu.

http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/ ARCH /generic/packages/nginx_1.2.2-1_ARCH.ipk

Es kann zu Port-Konflikten kommen, wenn Sie LuCI zuvor oder danach installiert haben. Das LuCI-Paket installiert uhttpd, das ebenfalls den Port 80 beanspruchen möchte. Daher kann eine Konfiguration und Port-Weiterleitung erforderlich sein. Es gibt Möglichkeiten, LuCI mit einem anderen HTTP-Daemon auszuführen, dies wird hier jedoch nicht behandelt. Für eine schnelle Lösung ändern Sie einfach den uhttpd-Port auf einen anderen Wert. Die Konfigurationsdatei befindet sich

/etc/config/uhttpd

Konfigurationsdateien

Die Konfigurationsdateien befinden sich im Ordner /etc/, die nginx-eigenen Dateien in ihrem eigenen Ordner /etc/nginx/.

nginx.conf

/etc/nginx/nginx.conf

user nobody nogroup;
worker_processes  1;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

events {
    worker_connections  1024;
}

http {
	include mime.types;
	index index.php index.html index.htm;
	default_type text/html;

	sendfile on;
	keepalive_timeout 65;
	gzip on;

	gzip_min_length  1k;
	gzip_buffers     4 16k;
	gzip_http_version 1.0;
	gzip_comp_level 2;
	gzip_types       text/plain application/x-javascript text/css application/xml;
	gzip_vary on;
	server {
	        listen       80;		# Port, make sure it is not in conflict with another http daemon.
	        server_name  YOUR_SERVER;	# Change this, reference -> http://nginx.org/en/docs/http/server_names.html
		fastcgi_connect_timeout 300;
		fastcgi_send_timeout 300;
		fastcgi_read_timeout 300;
		fastcgi_buffer_size 32k;
		fastcgi_buffers 4 32k;
		fastcgi_busy_buffers_size 32k;
		fastcgi_temp_file_write_size 32k;
		client_body_timeout 10;
		client_header_timeout 10;
		send_timeout 60;		# 60 sec should be enough, if experiencing alof of timeouts, increase this.
		output_buffers 1 32k;
		postpone_output 1460;

		root   /mnt/data/www;		# Your document root, where all public material is.

		location ~ \.php$ {
			fastcgi_index  index.php;
			fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
			include        fastcgi_params;

			if (-f $request_filename) {
				# Only throw it at PHP-FPM if the file exists (prevents some PHP exploits)
				fastcgi_pass    127.0.0.1:1026;     # The upstream determined above
			}
		}
	}
}

php.ini

/etc/php.ini

doc_root = "YOUR/DOCUMENT/ROOT"
cgi.force_redirect = 1
cgi.redirect_status_env = "yes";

fastcgi_params

Befindet sich in /etc/nginx/. Falls diese Datei aus irgendeinem Grund geändert wurde oder nicht vorhanden war, funktioniert diese Version.

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.