Ghostboard pixel

Nextcloud Hub samt Office für Nginx mit Plesk fit machen.

Nextcloud Hub samt Office für Nginx mit Plesk fit machen.
Quelle: https://www.plesk.com/brand/

Hallo zusammen,

Nextcloud in einer neuen Version erschienenheute, an diesem trüben Montag möchte ich euch zeigen wie man von Apache2 auf Nginx wechselt mit seiner Installation und wie man verschiedene Konfigurationen einrichtet wenn man Plesk als Admin Panel benutzt.

Nextcloud

Schritt 1: herunterladen und installieren von Nginx.

Zuerst melden wir uns bei Plesk an. Danach gehen wir auf Tools & Einstellungen und öffnen das Untermenü Updates und Upgrades. Es öffnet sich eine neue Seite. Hier auf Komponenten hinzufügen und entfernen klicken. Dann wählen wir im Dropdown Menü Webhosting und anschliessend Nginx Reverse Proxy aus. Ist das geschehen können wir mit fortfahren diesen installieren.
Ist das erledigt gehen wir wieder zum Plesk Panel zurück. Nun muss kontrolliert werden ob Nginx läuft. Tut er das nicht und es liegt ein Fehler vor, könnte diese Anleitung helfen diesen zu beheben.
Wenn Nginx läuft müssen noch ein paar Dinge eingestellt werden. Damit die Webseiten auch wissen das diese Apache nicht mehr nutzen sollen, sondern Nginx. Geht dazu in die Domain Einstellungen und öffnet das Menü für die Apache und Nginx Einstellungen. Hier Proxy Modus entfernen. Bei zusätzliche Nginx Anweisungen kommt die Konfiguration der Webseite rein.
Nun noch in die PHP Einstellungen der Seite. Hier weisen wir PHP an Nginx zu nutzen, indem wir den Eintrag auswählen FPM-Anwendung durch Nginx bedient auswählen. Ansonsten muss nichts weiter gemacht werden und es sollte nun alles über Nginx laufen.
Nginx Konfiguration für Nextcloud:

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
# last;

location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}

# set max upload size

fastcgi_buffers 64 4K;

# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:.|autotest|occ|issue|indie|db_|console) {
deny all;
}

location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+).php(?:$|/) {
fastcgi_split_path_info ^(.+?.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
#Avoid sending the security headers twice
fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true;

fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}

location ~ ^/(?:updater|ocs-provider)(?:$|/) {
try_files $uri/ =404;
index index.php;
}

# Adding the cache control header for js and css files
# Make sure it is BELOW the PHP block
location ~ .(?:css|js|woff|svg|gif)$ {
try_files $uri /index.php$uri$is_args$args;
add_header Cache-Control "public, max-age=15778463";
# Add headers to serve security related headers (It is intended to
# have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into
# this topic first.
# add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.

# Optional: Don't log access to assets
access_log off;
}

location ~ .(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$uri$is_args$args;
# Optional: Don't log access to other assets
access_log off;
}

Konfiguration für Collabora Office: (Hier das Domain.tld durch die eigene Domain ersetzen!) Diese Datei kann unter /etc/nginx/sites-available/ angepasst werden für die einzelnen Domains. Quelle: Plesk

listen 443 ssl;
server_name office.domain.tld;

# static files
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}

# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}

# main websocket
location ~ ^/lool/(.*)/ws$ {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}

# download, presentation and image upload
location ~ ^/lool {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}

# Admin Console websocket
location ^~ /lool/adminws {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}

Konfiguration für WordPress:

if (!-e $request_filename) {
set $test P;
}
if ($uri !~ ^/(plesk-stat|webstat|webstat-ssl|ftpstat|anon_ftpstat|awstats-icon|internal-nginx-static-location)) {
set $test "${test}C";
}
if ($test = PC) {
rewrite ^/(.*)$ /index.php?$1;
}

Falls die Anleitung funktioniert hat und diese euch gefallen hat, lasst einen Kommentar da. Ich würde mich drüber freuen.