使用apache http服务器部署前端和后端

时间:2021-05-18 22:24:21

标签: java html linux apache httpserver

我是 Web 开发的新手,并试图了解事物的工作原理。

我有一个域为 www.example.com 的 Debian 远程服务器。
在它上面我有一个 java 应用程序在端口 4321 上作为守护进程运行。
我还在 Debian 远程服务器上设置了一个 apache 服务器,该服务器提供一个 index.html 文件,该文件包含我的应用程序的前端,包括需要向 http://localhost:4321/data 发送获取请求以从我的后端获取数据的 javascript 代码在端口 4321 并将其呈现在 html 文件中。

我知道这对你们中的许多人来说似乎很明显,但是当从我的浏览器(不是 Debian 远程服务器,而是我自己的本地机器)调用 www.example.com 时,我的浏览器中显示了 index.html 文件但是脚本标记中的所有 get 请求方法都失败了,因为它们将 localhost 解释为我的本地计算机,并试图与我计算机上端口 4321 上的应用程序通信以获取数据而不是 {{1} },这显然不存在。

我错过了什么,我是否以正确的方式托管我的应用程序?

提前致谢。

1 个答案:

答案 0 :(得分:0)

假设您还将对 /data 的请求代理到 Java 应用程序,那么您就是在以典型的方式托管内容。

异常部分是客户端 javascript 请求明确尝试向本地主机发出请求。正如您所说,这是行不通的,因为它在每个浏览器中运行,而不是在代理服务器上运行。这是一种客户端技术。

如果您的代理服务器(例如 CGI 或 apache 模块)或您的 Java 应用程序的另一部分正在获取更多数据,“本地主机”将起作用的唯一方法。