使用多个 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 最后的重定向功能。
效果很好!
所以我有一个配置文件说明了这一点
<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 最后的重定向功能。
效果很好!