Webserver

Nützliche NGINX-Snippets

Unliebsame Crawler ärgern

if (!empty($_SERVER['HTTP_USER_AGENT'])) {
	if (preg_match("/Wget/", $_SERVER['HTTP_USER_AGENT'])) {
		header("Location: ftp://speedtest.tele2.net/1000GB.zip", true, 302);
		exit;
	}
}

Einzelne IP Adressen oder gesamte Netzbereiche aussperren (und Ärgern ( ͡° ͜ʖ ͡°))

# Dieses ganz oben in die jeweilige Konfigurationsdatei unter /etc/nginx/sites-available einfügen - IP Adresse(n) in CIDR Notation angeben
geo $bad_user {
        default 0;
        xx.xx.xx.xx/32 1;
        xx.xx.xx.0/24 1;
}

# Dann im server - Block dieses einfügen, das Rewrite-Ziel kann nach Belieben verändert werden
        if ($bad_user) {
                rewrite ^ https://www.youtube.com/watch?v=oHg5SJYRHA0;
        }

 

Laravel - Webseiten in einem Unterverzeichnis bereitstellen

Dazu bedienen wir uns des folgenden Config-Blocks

location ^~ /laravel {
    alias /var/www/laravel/public;
    try_files $uri $uri/ @laravel;

    location ~ \.php {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        include /etc/nginx/fastcgi_params;
    }
}

location @laravel {
    rewrite /laravel/(.*)$ /laravel/index.php?/$1 last;
}

Die Pfade zum PHP Socket müssen an die jeweiligen Gegebenheiten angepasst werden, aktuell wäre dies auf einem Ubuntu / Debian System bspw. /var/run/php/php7.4-fpm.sock