Seafile Server - als separater Server hinter Webserver mit Apache2
Aus znilwiki
Changelog:
- 06.08.2017: erste Version
- 31.01.2019: Anpassung an Ubuntu 18.04 + Seafile 6.3.4
- 10.06.2019: Hinweis auf Seafile ab version 7.0.x
Aufbau
Im Zuge des Umbaus meines Webservers habe ich angefangen die Rollen zu trennen.
Früher lief der Seafile-Server auf dem gleichen Server wie auch diese Webseite.
Nun ist es ein eigener Server dahinter:
+----------------------------------+ +----------------+ | WEBSERVER | | SEAFILE-SERVER | +-----------------+----------------+ +----------------+ | Extern | Intern | | Intern | seafile.znil.net ---------> | 213.168.209.199 | 10.100.12.10 | <---- LAN ----> | 10.100.12.20 | +-----------------+----------------+ +----------------+
Ich habe einen Moment gebraucht bis ich das hintereinander geschaltet bekommen habe ... und es geht wie folgt:
Vorbereitung
- Installiert euren SEAFILE-SERVER gemäß dieser Anleitung: Seafile Server - Installation auf Ubuntu 18.04.x LTS
- Macht den Umbau mit dem Apache2 Reverse Proxy bis euer Seafile-Server über http://10.100.12.20 erreichbar ist - https ist nicht notwendig, ich verwende ein Lets Encrypt Zertifikat extern
- gebt immer die IP-Adresse statt des Namens an in den Konfigurationsdateien (Apache Teil für http und https)
Apache2 Konfiguration
- Legt die Subdomain auf eurem WEBSERVER an.
- macht die Seite per https erreichbar (z.B. mit einem lets Encrypt Zertifikat
- Die Apache-Testseite sollte also per https://eurer.seafile.servername erreichbar sein.
- Ändert die .vhost bzw. die Konfiguratonsdatei der Webseite unter
/etc/apache2/sites-available/seitenname.vhost
wie folgt ab: - bearbeitet die .vhost Datei eurer Subdomain:
nano /etc/apache2/sites-available/seafile.znil.net.vhost
und löscht alles darin. Ersetzt den Inhalt wie folgt:
<VirtualHost 10.100.12.10:80> ServerName seafile.znil.net ServerAdmin webmaster@znil.net # Umleitung http zu https RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] </VirtualHost> <VirtualHost 192.168.200.10:443> ServerName seafile.znil.net ServerAdmin webmaster@znil.net SSLEngine on SSLProtocol All -SSLv2 -SSLv3 SSLCertificateFile /etc/letsencrypt/live/seafile2.znil.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/seafile2.znil.net/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/seafile2.znil.net/chain.pem # RewriteEngine On # # seafile fileserver # ProxyPass /seafhttp http://10.100.12.20:8082 ProxyPassReverse /seafhttp http://10.100.12.20:8082 RewriteRule ^/seafhttp - [QSA,L] # # seahub # SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 ProxyPreserveHost On ProxyPass / http://10.100.12.20:8000/ ProxyPassReverse / http://10.100.12.20:8000/ # # media # ProxyPass /media http://10.100.12.20 ProxyPassReverse /media http://10.100.12.20 </VirtualHost>
Anpassen müsst Ihr
- alle IP-Adressen
- den Pfad zu den SSL-Dateien
Ich lasse den SSL Teil immer einfach stehen und kopiere nur den Rest hinein.
Wichtig waren die letzten beiden Zeilen zu /media
damit das Webinterface funktioniert. Dazu muss auf dem Seafile zumindest der http:// Teil funktionieren.
In Seafile müsst Ihr trotzdem die Pfade auf https anpassen wie hier beschrieben: Seafile Server - Installation auf Ubuntu 18.04.x LTS#Seafile_Konfiguration_anpassen
Änderung ab Version 7.0.x
Seit Seafile 7.0.x hört dieser nur noch auf 127.0.0.1:8000 => der Posrt 8000 ist also nicht von anderen Hosts zu erreichen.
Das könnt Ihr ändern indem Ihr auf dem Seafile-Server die folgende Datei bearbeitet:
nano /home/seafile/haiwen/conf/gunicorn.conf
und dort die Zeile
bind = "127.0.0.1:8000"
auf
bind = "0.0.0.0:8000"
ändert. Dann Seafile neu starten.
Seafile von intern
Soll der Seafile-Server auch von intern genutzt werden so:
- so verweist intern auf die interne IP des Webservers, nicht des Seafile-Servers.