使用多个ProxyPass和不同端口

时间:2018-03-27 19:31:33

标签: apache web mod-proxy proxypass

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

<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,这是desiered效果并启动正确的应用程序。

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

我怎样才能做到这一点!

1 个答案:

答案 0 :(得分:0)

这里的主要问题是certbot dosn在1个文件中与多个主机配合使用。

纠正问题的步骤;

1删除所有证书

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

一个conf文件的示例内容

<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

并为所有人创建新证书,确保在最后选择重定向功能。

工作得很好!