From 8d8871c565373a46792fc0e4d3976a3c2ac58c18 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Thu, 10 Sep 2020 16:49:23 +0200 Subject: [PATCH] nixos/nextcloud: fix `nginx`-config for Nextcloud 19 and older It seems as I misconfigured `nginx` for certain cases such as the `ldap`-plugin[1] in 42f6244899d1ef8839c6e0c0a9340e1334d40264. This patch fixes the `nginx`-config to match the upstream recommendations[2]. Also added a comment to the module to remind myself to ensure that `nginx` will work with both v19 and v20 as soon as the latter is released and can be packaged in `nixpkgs`. Co-authored-by: nivadis [1] https://github.com/nextcloud/server/issues/16194#issuecomment-688839888 [2] https://docs.nextcloud.com/server/19/admin_manual/installation/nginx.html --- nixos/modules/services/web-apps/nextcloud.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix index 7da119758fc9..a1127de4cd26 100644 --- a/nixos/modules/services/web-apps/nextcloud.nix +++ b/nixos/modules/services/web-apps/nextcloud.nix @@ -542,6 +542,9 @@ in { environment.systemPackages = [ occ ]; services.nginx.enable = mkDefault true; + + # FIXME(ma27) make sure that the config works fine with Nextcloud 19 + # *and* Nextcloud 20 as soon as it gets released. services.nginx.virtualHosts.${cfg.hostName} = { root = cfg.package; locations = { @@ -555,7 +558,7 @@ in { }; "/" = { priority = 900; - extraConfig = "try_files $uri $uri/ /index.php$request_uri;"; + extraConfig = "rewrite ^ /index.php;"; }; "~ ^/store-apps" = { priority = 201; @@ -579,7 +582,7 @@ in { "~ ^/(?:\\.|autotest|occ|issue|indie|db_|console)".extraConfig = '' return 404; ''; - "~ \\.php(?:$|/)" = { + "~ ^\\/(?:index|remote|public|cron|core\\/ajax\\/update|status|ocs\\/v[12]|updater\\/.+|oc[ms]-provider\\/.+|.+\\/richdocumentscode\\/proxy)\\.php(?:$|\\/)" = { priority = 500; extraConfig = '' include ${config.services.nginx.package}/conf/fastcgi.conf;