我有一个(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/