
Ich habe also zu Hause einen physischen Server mit Proxmox VE 5.3 als Hauptbetriebssystem eingerichtet. Ich habe 4 VMs in Proxmox installiert:
- Nginx(installiert auf einer Ubuntu 18.04 LTS VM)
- Diskurs(installiert auf einer Ubuntu 18.04 LTS VM), eingerichtet für HTTP, mit Plänen zur Einrichtung von HTTPS
- GitLab(installiert auf einer Ubuntu 18.04 LTS VM), eingerichtet für HTTP, mit Plänen zur Einrichtung von HTTPS
- ownCloud(installiert auf einer Ubuntu 18.04 LTS VM), eingerichtet für HTTPS
Die Idee hinter diesem Setup ist, dass Nginx die anderen 3 VMs per Reverse-Proxy nutzt. Leider scheine ich damit große Schwierigkeiten zu haben. In den folgenden Tabellen zeige ich, was ich in meinem Browser bekomme:
----------------------------------------------------------------------------------------------------------------------------------------------------------
| VM | URL | What I get back in the Browser |
----------------------------------------------------------------------------------------------------------------------------------------------------------
| Discourse | http://discourse.myreserveddns.com | "Welcome to nginx!" default page |
| GitLab | http://git.myreserveddns.com | Redirects to http://git.myreserveddns.com/users/sign_in, the page I expect to see. |
| ownCloud | http://oc.myreserveddns.com | Redirects to https://oc.myreserveddns.com |
| ownCloud | https://oc.myreserveddns.com | "Apache2 Ubuntu Default Page" |
| ownCloud | https://oc.myreserveddns.com/owncloud/index.php/login | I get the ownCloud login page, as I expect to see. |
----------------------------------------------------------------------------------------------------------------------------------------------------------
Im Grunde leitet GitLab wie erwartet weiter. Bei ownCloud kann ich mit der vollständigen URL auf eine Anmeldeseite gelangen, aber ich hätte wirklich gerne einfache URLs wiehttp://oc.myreserveddns.comUndhttps://oc.myreserveddns.comum zur Login-URL und zu Discourse zu gelangen, bekomme ich nur die Standardseite "Willkommen bei nginx!". Für Discourse sollte ich erwähnen, dass ich die richtige Discourse-Seite bekommen habe, umhttp://discourse.myreserveddns.com, aber nachdem ich die private IP in einem Browser getestet habe, bekomme ich nur die Nginx-Standardseite.
Wie dem auch sei, hier sind meine Nginx-Konfigurationsdateien in /etc/nginx/sites-available (und ja, alle enthalten symbolische Links zu /etc/nginx/sites-enabled):
diskurs.conf
server {
# The IP that you forwarded in your router (nginx proxy)
listen 192.168.1.101:80; listen [::]:80;
# Make site accessible from http://localhost/
server_name discourse.myreserveddns.com;
# The internal IP of the VM that hosts your Apache config
set $upstream 192.168.1.104;
location / {
proxy_pass_header Authorization;
proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
}
gitlab.conf (würde den Code einschließen, aber mir wurde gesagt, dass der Beitrag wie Spam aussieht und es weniger wichtig ist, ihn anzuzeigen, als die anderen CONF-Dateien)
owncloud.conf
server {
# The IP that you forwarded in your router (nginx proxy)
listen 192.168.0.101:443 ssl;
# SSL config
ssl on;
ssl_certificate /etc/nginx/ssl/owncloud.crt;
ssl_certificate_key /etc/nginx/ssl/owncloud.key;
# Make site accessible from http://localhost/
server_name oc;
# The internal IP of the VM that hosts your Apache config
set $upstream 192.168.0.102;
location / {
proxy_pass_header Authorization;
proxy_pass https://$upstream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect off;
}
}
Ich denke, ich habe zwei Hauptfragen:
- Wie kommt es, dass ich die Standardseiten „Willkommen bei nginx!“ und „Apache2 Ubuntu-Standardseite“ erhalte? Wo finde ich diese „Standardseiten“ in Nginx?
- Die Standard-Apache-Seite ist für ownCloud sehr ungewöhnlich. Es läuft Apache für sein SSL, daher könnte die Standardseite dafür auf der ownCloud-VM sein. Auf Discourse ist Nginx dagegen überhaupt nicht installiert!
- Kann ich mit Nginx von einem Link zu einem anderen weiterleiten? Könnte ich zum Beispiel vonhttps://oc.myreserveddns.comZuhttps://oc.myreserveddns.com/owncloud/index.php/login?