apache2反向代理/端口转发问题

标签 apache ubuntu amazon-ec2

我有一个(node/react/redux)webapp,它在 4 个端口上运行:一个后端服务器在 4050 上运行,三个客户端应用程序从 3000、4000 和 5000 运行。(在 AWS 上运行,Ubuntu 16.04)

使用反向代理的 NGINX 端口转发效果很好。但是我的组织习惯于 Apache,而 Apache 与我想使用的 SAML2 SSO 系统配合得更好。

我已经重定向到工作,如

RewriteRule   "^/client1$" "http://my.aws.ip.addr:3000/" [R]
RewriteRule   "^/client2$" "http://my.aws.ip.addr:4000/" [R]
RewriteRule   "^/client3$" "http://my.aws.ip.addr:5000/" [R]

在我的/etc/apache2/apache2.conf .我似乎无法得到任何其他建议。例如,VirtualHost 声明。我更喜欢基于 VirtualHost 的代理的“美学”,并且想了解为什么我不能从 http://my.aws.ip.addr/client1 之类的 URL 进行端口转发.

一个不起作用的示例 VirtualHost:
<VirtualHost *:443>
  ...
  ServerName my.aws.ip.addr/client1
  ProxyRequests Off
  ProxyVia Off
  ProxyPreserveHost On
  <Proxy *>
     Order allow,deny
     Allow from all
  </Proxy>
  ProxyPass /client1/ http://my.aws.ip.addr:3000/
  ProxyPassReverse /client1/ http://my.aws.ip.addr:3000/
  ...
</VirtualHost>

(也不适用于 *:80)

有人可以帮忙吗?

最佳答案

尝试从 ServerName 中删除路径:

ServerName my.aws.ip.addr

此行应仅由域填充:它指示 Apache 哪个域请求应触发此配置。

否则配置似乎很好。

关于apache2反向代理/端口转发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46349059/

相关文章:

apache - 如何使用 htaccess 进行基本的、总体的、整体的重定向

apache - 仅在用户可以通过 Gitolite 访问的 gitweb 中显示 repos

MongoDB 失败(结果 : core-dump)?

php - Apache 配置 ssl

apache - 502 代理错误(docker + traefik + apache)

linux - CSS 正在生成但未保存

linux - SSH无密码登录失败

amazon-web-services - 如何获取正在运行的EC2竞价型实例的价格?

amazon-ec2 - 在 Amazon Linux 上安装和管理 Jenkins