使用多个 ProxyPass 和不同端口配置 Apache

Configure Apache with multiple ProxyPass and different ports

所以我有一个配置文件说明了这一点

<VirtualHost *:80>
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName www.aaaaaaaa.yyyyyyyyy.co.uk
  ServerAlias aaaaaaa.yyyyyyy.co.uk
  ProxyPass / http://localhost:5000/
  ProxyPassReverse / http://localhost:5000/
  RewriteEngine on
  RewriteCond %{SERVER_NAME} =www.aaaaaaa.yyyyyyyyy.co.uk [OR]
  RewriteCond %{SERVER_NAME} =aaaaaa.yyyyyyyyy.co.uk
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:80>
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName www.xxxxxx.yyyyyyyy.co.uk
  ServerAlias xxxxxxx.yyyyyyyyy.co.uk
  ProxyPass / http://localhost:8989/
  ProxyPassReverse / http://localhost:8989/
  RewriteEngine on
  RewriteCond %{SERVER_NAME} =www.xxxxxxxxxxx.yyyyyyyy.co.uk [OR]
  RewriteCond %{SERVER_NAME} =xxxxxx.yyyyyyyyyy.co.uk
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

当访问 aaaaaaa.yyyyyyyyy.co.uk 时,它会重定向到 https,这是所需的效果并启动正确的应用程序。

然而,当我访问 xxxxx.yyyyyyy.co.uk 时,它会显示正确的应用程序,但不会重定向到 https,当我实际键入 https://xxxx.yyyyyy.co.uk 时,它会将我重定向到与 aaaaaaa.yyyyyyyyyy.co.uk 相同的应用程序。

我怎样才能使这个工作!

这里的主要问题是 certbot 不能很好地处理 1 个文件中的多个主机。

纠正问题的步骤在哪里;

1 删除所有证书

2 在 sites-availible 中自己的文件中重新创建所有虚拟主机 (减去重写部分)

一个配置文件的示例内容

<VirtualHost *:80>
  ProxyPreserveHost On
  ProxyRequests Off
  ServerName www.aaaaaaaa.yyyyyyyyy.co.uk
  ServerAlias aaaaaaa.yyyyyyy.co.uk
  ProxyPass / http://localhost:5000/
  ProxyPassReverse / http://localhost:5000/
</VirtualHost>

3 在对所有虚拟主机(站点)执行此操作后 运行 命令

certbot --apache

并为所有人创建新证书确保 select 最后的重定向功能。

效果很好!