![使用 URL 前缀代理 Web 应用程序](https://linux22.com/image/722512/%E4%BD%BF%E7%94%A8%20URL%20%E5%89%8D%E7%BC%80%E4%BB%A3%E7%90%86%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
如何在我的服务器中使用 Nginx 或 Apache2 代理带有 url 前缀的 Web 应用程序?
例如,我在 Docker 中运行 NextCloud 并且想要通过 访问它https://my-domain.example/nextcloud/
,因此我使用具有以下配置的 nginx。
location /nextcloud {
proxy_pass http://docker_ip;
proxy_redirect off;
proxy_set_header Host $host;
}
不幸的是,它只能代理索引,其他资源如 js 文件或 css 文件都是 404 未找到,因为它们的 URL才不是包含前缀/nextcloud
。
以前,我使用 apt 安装了可以与 Apache2 集成的 owncloud,并且我可以使用 访问它https://my-domain.example/owncloud/
。
我想知道当我使用docker运行web应用程序时如何实现这个结果?
更新
如果我使用子域名,如何将 https 代理为 http?当我访问时nextcloud.my-domain.example
,它将返回 302 未找到 http 位置。我该如何使位置变为 https?