节点 JS 和 Apache HTTP

Posted

技术标签:

【中文标题】节点 JS 和 Apache HTTP【英文标题】:Node JS & Apache HTTP 【发布时间】:2018-09-28 17:01:52 【问题描述】:

需要有关在服务器中设置 Web 应用程序和 REST api 的帮助/建议。

目前有如下 3 个应用程序

    用户 Web 应用程序 - 在 node.js 上运行 - 端口 3389 / 通用反应应用程序 管理 Web 应用程序 - 在 apache 上运行 - 端口 8080 / laravel 用于用户应用程序的 Rest Api - 在 apache 上运行 - 端口 8080 / laravel

目前我们加载如下应用程序

用户应用程序:- www.xyz.com:3389 万维网。 xyz .com:3389/帮助 万维网。 xyz .com:3389/房东介绍

管理应用程序:- www.xyz.com/app/admin

REST API 路由:- 获取http://xyz/app/country?id=1 获取http://xyz/app/location

为了加载没有端口号的用户应用程序,我们尝试在 apach conf 中设置代理传递,如下所示

代理密码http://127.0.0.1:3389/ ProxyPassReverse http://127.0.0.1:3389/

代理通行证http://127.0.0.1:8080/app/admin/ ProxyPassReverse http://127.0.0.1:8080/app/admin/

现在重启 apache 后,我们可以在不使用端口号的情况下访问用户应用程序,但无法访问管理应用程序,而且我们需要知道如何从客户端代理传递 rest API。

【问题讨论】:

【参考方案1】:

您可以使用或创建虚拟主机,在 Apache HTTPD 中基本上是这样的:

<VirtualHost *:80>
ServerName xyz.com
Redirect / https://example.com/
</VirtualHost>

<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
ErrorLog /path/to/logs/publicaname.example.com-ssl-error.log
CustomLog /path/to/logs/publicaname.example.com-ssl.log combined

ProxyPass /api/input http://127.0.0.1:8080/api/input
ProxyPassReverse /api/input http://127.0.0.1:8080/api/input
</VirtualHost>

【讨论】:

我们已经做到了,在帖子中也提到了。一个用户应用程序可以工作,但另一个不能。 ' ProxyPass 127.0.0.1:3389 ProxyPassReverse 127.0.0.1:3389 ProxyPass 127.0.0.1:8080/app/admin ProxyPassReverse 127.0.0.1:8080/app/admin ' 这不起作用。用户应用程序打开正常,即 www.xyz.com:3389 但管理应用程序:www.xyz.com/app/admin 没有启动

以上是关于节点 JS 和 Apache HTTP的主要内容,如果未能解决你的问题,请参考以下文章

如何使用具有不同端口的单个 ssl 证书运行节点 js 和 apache?

代理错误 502,在 apache2 服务器上运行节点 js 应用程序

WebSocket 服务器能否与 HTTP Apache 服务器共存于同一公共端口(80),但本地地址不同?

将 Socket.IO 与 Apache、Node.js、SSL 和 CloudFlare (HTTP 500) 一起使用

Apache:与 Apache 集成时 Express.js 中出现 502 代理错误 [关闭]

将 Next.js 部署到 Apache 服务器