与 nextcloud 一起提供网页

与 nextcloud 一起提供网页

我在 mydomain.com 有一个新设置的 vps:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:    20.04
Codename:   focal
$ 

管理员为我安装了 nextcloud。我将我的 nextcloud 客户端指向 work.mydomain.com,效果非常好。我还想设置一个网络服务器www.mydomain.com。目前,当我将网络浏览器指向www.mydomain.com,我收到一个 nextcloud 样式的页面,上面写着“通过不受信任的域访问,请联系您的管理员。”这表明网络服务器正在运行。的确:

$ sudo netstat -tnlp | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      844835/httpd        
$ 

并且apache2没有安装。如果我安装它,我会得到:

$ service apache2 status
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: failed (Result: exit-code) since Tue 2023-01-31 17:08:54 CET; 1 we>
       Docs: https://httpd.apache.org/docs/2.4/
:/$

所以,在我看来,nextcloud 的网络服务器正在处理www.mydomain.com。 nextcloud 的 config.php 中只有 2 个对域的引用:

  ...
  'trusted_domains' => 
  array (
    0 => 'work.mydomain.com',
  ),
  'datadirectory' => '/var/snap/nextcloud/common/nextcloud/data',
  'dbtype' => 'mysql',
  'version' => '25.0.2.3',
  'overwrite.cli.url' => 'https://work.mydomain.com',
  ...

所以我不明白如何调用www.mydomain.com正在服务中。我如何将我自己的页面提供给www.mydomain.com

答案1

您正在尝试运行网络服务器,而 Nextcloud 也在同一台服务器上运行,两者都在端口 80(或用于安全/TLS 连接的 443)。

默认情况下,如果您在浏览器中输入 IP,它会重定向到端口 80(或 443)。在这里,www.mydomain.com和都work.mydomain.com重定向到服务器的端口 80(或 443),但只有work子域被授权访问 Nextcloud。

Apache 无法启动的原因是它默认配置为处理对端口 80 和 443 发出的请求,而这些端口已被 Nextcloud 使用。

您应该使用反向代理配置来为 Nextcloud 和网站提供服务。 Apache 本身可以兼作反向代理和网络服务器。基本上,您将让 Apache 拦截对端口 80 和 443 的请求,并根据 URL 的格式,如果是work.mydomain.com,则将其重定向到 Nextcloud,如果是www.mydomain.com,则将其重定向到该网站。

这是使用 VirtualHost 部分完成的。有一个例子这里

相关内容