3000
我有一个在两个端口和上运行的 Next.js 应用程序3001
,我想使用 apache 2.4 反向代理来实现这一点:
https://app.com/* -> localhost:300x/*
https://user.app.com/* -> localhost:300x/user/*
到目前为止我的设置如下:
<VirtualHost app.com:80>
ServerName app.com
<Proxy "balancer://mycluster">
BalancerMember "http://localhost:3000" route=1 retry=10
BalancerMember "http://localhost:3001" route=2 retry=10
</Proxy>
ProxyPass "/" "balancer://mycluster/"
ProxyPassReverse "/" "balancer://mycluster/"
</VirtualHost>
<VirtualHost user.app.com:80>
ServerName user.app.com
<Proxy "balancer://mycluster">
BalancerMember "http://localhost:3000" route=1 retry=10
BalancerMember "http://localhost:3001" route=2 retry=10
</Proxy>
ProxyPass "/" "balancer://mycluster/user/"
ProxyPassReverse "/" "balancer://mycluster/user/"
</VirtualHost>
但每当我访问它时,https://user.app.com
它都会将我重定向https://user.app.com/user
到4o4
错误
希望有人能指出我做错的地方。提前谢谢。
答案1
您没有为 https 请求指定配置。您需要为<VirtualHost app.com:443>
和创建相应的配置<VirtualHost user.app.com:443>
。我假设您在这之前还有另一个反向代理,否则我不明白为什么您甚至会收到该 GET 的响应。
您的配置中没有重定向,您确定重定向了吗?如果您被重定向,您可能还想查看并分享您的应用程序代码。重定向可能发生在您的 Web 应用程序本身中。