在 NGINX 中获取位置后面的 Nextcloud 和 Wordpress 图像

在 NGINX 中获取位置后面的 Nextcloud 和 Wordpress 图像

在 NGINX 中的反向代理位置后面设置我的 Dockered 应用程序(wordpress nextcloud)

如果我使用 NGINX 位置/wordpress 会在受信任域中的 config.php 中进行一些配置后开箱即用并运行 nextcloud。

所以这个配置适用于 nginx 和 nextcloud。(我只需要更改端口。

server {
    server_name localhost;
    large_client_header_buffers 4 16k;
    

    location / {
    proxy_set_header  Host $host;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-Proto http;
    proxy_set_header  X-Forwarded-Host $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://10.0.100.6:8080;
    
    }

    

    listen [::]:80;
    listen 80; 
}

但如果我想在不同的位置运行它们,我就会遇到麻烦。两天来我在网上尝试了很多提示,但从空白屏幕到服务器错误,再到不允许查看网站等,都没有奏效。

也许你们对我可以尝试的一些提示。

我已经在 wordpress 中更改了路径。尝试在 nextcloud 上进行代理配置... 没有任何效果。

也许有人有一个正在运行的 nextcloud 代理配置,它不是在 / 而是在另一个位置运行?我尝试了这些修复https://gist.github.com/aleksandar-babic/0cdd3244f4bf6b13dbed68de96ba4ab1对于 wordpress 但对我来说没什么用

我只是使用 http 进行测试

有 nextcloud 或 wordpress 反向代理经验的人可以胜任 :)

所以我已经尝试过这个 nginx 配置:


server {
    server_name localhost;
    large_client_header_buffers 4 16k;
    

    location /nextcloud {
    proxy_set_header  Host $host;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-Proto http;
    proxy_set_header  X-Forwarded-Host $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://10.0.100.6:8080;
    
    }

    

    listen [::]:80;
    listen 80; 
}


带我到这个页面:

未找到 Nextcloud 页面

服务器上找不到该页面或者您可能无权查看该页面。

返回 Nextcloud

Nextcloud – 所有数据的安全家园

因此反向代理正在工作但找不到页面:

我认为这只是 nextcloud 的 config.php 中的一个配置问题

所以我读了这个:https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html

这是我的 nextcloud 的 config.php 文件:


<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' => 
  array (
    0 => 
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 => 
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'upgrade.disable-web' => true,
  'instanceid' => 'ocd4tnvw6501',
  'passwordsalt' => 'y0KSe+aYftr3ruAhjc8P+WME7/UBsV',
  'secret' => 'ZCsLngn5eg+M9kkuPHInzt5H8APgWta20lPncnFR244WDxLW',
  'trusted_domains' => 
  array (
      0 => '10.0.100.6:8080',
      1 => '10.0.100.6:80',
      3 => '*',
  ),
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'mysql',
  'version' => '28.0.1.1',
  'overwrite.cli.url' => 'http://10.0.100.6/nextcloud',
  'dbname' => 'db',
  'dbhost' => 'mariadb',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'mysqluser',
  'dbpassword' => 'somemysqlpassword',
  'installed' => true,
  'overwritewebroot' => '/nextcloud',
  'trusted_proxies'   => ['10.0.0.6'],
  'overwritehost'     => '10.0.0.6',
);

我更改了受信任的主机

添加了这个:


'overwritewebroot' => '/nextcloud',
'trusted_proxies'   => ['10.0.0.6'],
'overwritehost'     => '10.0.0.6',
'overwrite.cli.url' => 'http://10.0.100.6/nextcloud',

也许这只是一个小的配置问题......

答案1

我认为您的位置块缺少一些指令。试试这个

location /nextcloud {
    proxy_set_header  Host $host;
    proxy_set_header  X-Real-IP $remote_addr;
    proxy_set_header  X-Forwarded-Proto http;
    proxy_set_header  X-Forwarded-Host $remote_addr;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://10.0.100.6:8080;
    client_max_body_size 0;
    proxy_redirect off;
    }

nextcloud config.php 也应该包含这个

'overwrite.cli.url' => 'http://your_domain.com/nextcloud',

相关内容