【问题标题】:Redirecting nginx to another server with apache2使用 apache2 将 nginx 重定向到另一台服务器
【发布时间】:2020-06-02 20:34:59
【问题描述】:

我一直在摆弄 nginx,想给它添加一个 nextcloud 服务器。我已经使用 Gitlab 和 YouTrack 作为运行良好的服务器,如果我只是尝试访问它们,例如 gitlab 的 domain.com/gitlab 和 youtrack 的 domain.com/youtrack。现在我想将 nextcloud 添加到它,并想通过 domain.com/nextcloud 访问它。我可以在浏览器中输入,但我只能取回本地 ip。

有关更多信息:我使用 nginx (VM) 将 URL 重定向到相应的 VM(我使用 VM 作为服务器)。我为它使用了位置 /nextcloud/ 块,但没有任何成功。每次我输入 domain.com/nextcloud/ 它都会重定向到该网站,但在地址搜索中输入例如 192.168.178.54/nextclout/

Nextcloud 服务器使用 apache 监听端口。

因此,我无法从本地网络访问 Nextcloud 网站。有人可以帮我吗?如果需要一些信息,请告诉我,我会尝试添加它们。

谢谢你的一切!~

【问题讨论】:

    标签: nginx redirect apache2


    【解决方案1】:

    这不是由 nginx 或 Apache 引起的,而是 DNS 是如何工作的,它应该如何工作。您的域可能只有 nginx 服务器 ip 的 Apex(或 A)记录,显然您的 Apache 服务器将具有不同的 ip。您可以为 Apache 服务器创建另一个 Apex 记录,但是两个服务器都必须根据路径在两者之间转发流量,因为连接的计算机只会随机选择两个记录中的一个(这称为循环 dns并用于构建一个非常简单的负载均衡器)。

    您要执行的操作应该使用子域来实现,即 gitlab.domain.com、youtrack.domain.com、nextcloud.domain.com。每个子域都有自己的 Apex 记录,gitlab 和 youtrack 指向 nginx ip,nextcloud 指向 Apache 服务器。

    一旦找到正确的服务器,路径将用作指向正确页面的导航系统。

    【讨论】:

    • apache 服务器和 nginx 服务器在同一个本地网络中,这意味着我只有一个全局网络地址来提供域。我只是使用 nginx 将使用代理传递的所有内容路由到相应的本地 IP 地址。示例:domain.com/gitlab 的所有内容都被路由到本地网络中的另一个 VM nginx local ip: 192.168.178.40 gitlab local ip: 192.168.178.41 block used: location /gitlab { proxy_pass http://192.168.178.41 }
    • 我很抱歉,我误解了,现在我明白你的意思了。如果这只是 nginx 的问题,我认为您正在寻找的是 proxy_set_header Host $host; Here's the docs 行。如果这不能解决您的问题,那么将 nginx 和 apache 配置放在问题中会非常有帮助。
    • 谢谢,效果很好。然后我只需要在 nextcloud 配置中将该域添加为受信任域。对于可能有相同问题的每个人:确保为 apache 设置正确的根目录。否则会出现站点未找到错误。
    猜你喜欢
    • 2019-02-23
    • 2013-04-23
    • 1970-01-01
    • 2012-11-22
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多