nextcloud an sich ist eine php anwendung. die braucht einen webserver und einen php interpreter, damit nextcloud funktioniert. wie man das mit nginx&php-fpm aufsetzt, ist in dem ersten artikel von carsten beschrieben.
in der nextcloud.conf steht: lausche auf ihre.domain.de port 80 und redirecte alles nach port 443 (außer acme-challenge, das sind anfragen vom letsencrypt server zur validierung deiner domain. zu dem zeitpunkt hast du noch kein zertifikate.)
server {
server_name ihre.domain.de;
listen 80 default_server;
listen [::]:80 default_server;
location ^~ /.well-known/acme-challenge {
proxy_pass http://127.0.0.1:81;
proxy_set_header Host $host;
}
location / {
return 301 https://$host$request_uri;
}
}
alles an ihre.domain.de port 443 ankommt, wird von nextcloud verarbeitet.
server {
server_name ihre.domain.de;
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
root /var/www/nextcloud/;
...
fragt dein browser nicht https://ihre.domain.de/ sondern https://192.168.178.10/ (die ip adresse deines servers) an, kommt keine antwort. (oder die default page vom nginx).
du kannst jetzt beliebig viele .conf dateien mit
server {
server_name ihre.domain.de;
statments anlegen. damit kannst du beliebig viele web-seiten auf dem server betreiben.
wenn du alles auf einem linux server in verschiedenen ordner unter /var/www betreiben willst, brauchst du nicht jedesmal einen webserver aufsetzen. einfach neben nextcloud.conf eine joomla.conf, wordpress.conf, etc.pp.conf legen.
wenn sich die zahl der server und dienste aber erhöht, kann es sinnvoll sein, einen reverse proxy vorzuschalten. dann für jeden fqdn den du ansprechen willst, einen eintrag in desen nginx.conf erzeugen:
server {
server_name ihre.domain.de;
...
proxy_pass http://192.168.178.11:80;
}
server {
server_name andere.domain.de;
...
proxy_pass http://192.168.178.12:80;
}
server {
server_name ihre.domain.de;
...
location /subfolder
proxy_pass http://192.168.178.11:80;
}
server {
server_name ihre.domain.de;
...
location /anderefolder
proxy_pass http://192.168.178.11:81;
}
da du zuhause an deinem router nur eine externe ip adresse hast, musst du diese für alle domains eintragen und port 80&443 auf einen internen nginx weiterleiten. und der verteilt das intern. als reverse proxy. dabei ist dann egal, wo der reverse proxy läuft. raspi oder nas.
eine sache gilt es dann noch zu beachten: nur der reverse proxy spricht ssl und hat letsencrypt zertifikate für die domains. wir setzen dafür voraus, dass dein heimnetz sicher ist. dann dürfte es unproblematisch sein, wenn der reverse proxy unverschlüsselt mit der nextcloud spricht. ansonsten musst du dir für die nextcloud selbstsignierte zertifikate ausstellen.
ok?