Wenn man einen Samba-Server (Windows-Dateifreigaben) über einen NGINX Reverse Proxy erreichen möchte geht das folgendermaßen:
upstream smb_servers {
server 192.168.1.101:445;
}
server {
listen 445; # TCP
proxy_pass smb_servers;
error_log /var/log/nginx/dns.log info;
}
Wenn man einen gespiegelten Dateiserver hat, kann man diesen zusätzlich in einer server-Direktive angeben. Damit könnte man die Last automatisch verteilen.
Achtung: einen SMB-Server über das Internet erreichbar zu machen ist nicht ratsam! Dafür eine VPN-Verbindung verwenden.
Wenn ein Zertifikat abläuft und irgendwelche Sachen nicht mehr funktionieren ist das ziemlich ärgerlich.
Um dies zu verhindern, kann man das Zertifikat automatisiert erneuern.
Get-childitem 'Cert:\LocalMachine\My' | ? {$_.Subject -eq $_.Issuer} | Remove-Item
New-SelfSignedCertificate -DnsName ([System.Net.Dns]::GetHostByName(($env:computerName))).Hostname
Restart-Service -Name [ServiceName]
Dieser PowerShell-Schnipsel entfernt zuerst das Zertifikat unter local machine
, erzeugt anschließend ein neues, dass nach dem FQDN des Systems benannt ist und startet dann den betreffenden Windows-Dienst durch.
Zum Automatisieren muss das Ganze in eine geplante Aufgabe gepackt werden. Diese muss mit erhöhten Rechten ausgeführt werden.
AltoRouter ist eine kleine, aber mächtige PHP-Klasse, mit der man auch große Projekte umsetzen kann.
Um AltoRouter nutzen zu können, muss im Webserver das URL-Rewriting aktiviert sein. Zusätzlich dazu, ist eine .htaccess
-Datei notwendig, die die Anfragen an die index.php
weiterleitet:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
Die index.php
-Datei nimmt die Anfragen entgegen und man kann eigene Routen erstellen, über die die Anfragen abgearbeitet werden:
<?php
header("Content-Type: text/html");
include dirname(__FILE__) . '/AltoRouter.php';
$router = new AltoRouter();
// $router->setBasePath('/');
/* Setup the URL routing. This is production ready. */
$router->map('GET', '/', 'home.php', 'home');
$router->map('GET', '/guest/', 'guest.php', 'guest');
$router->map('GET', '/user/[*:id]/', 'user/id.php', 'user-id');
// // API Routes
// $router->map('GET','/api/[*:key]/[*:name]/', 'json.php', 'api');
/* Match the current request */
$match = $router->match();
if($match) {
require $match['target'];
} else {
header("HTTP/1.0 404 Not Found");
require '404.html';
}
?>
Wenn keine passende Route gefunden wird, wird HTTP Error 404 zurückgegeben und die 404.html
-Datei angezeigt.
Eine (ungetestete) vHost-Konfiguration, bei der keine .htaccess
notwendig ist:
<VirtualHost *:80>
ServerName altorouter.local
DocumentRoot "/var/www/html/altorouter/"
ServerAdmin apache@altorouter.local
ErrorLog ${APACHE_LOG_DIR}/altorouter-error.log
CustomLog ${APACHE_LOG_DIR}/altorouter-access.log combined
LimitRequestFieldSize 32768
<Directory /var/www/html/altorouter>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>