【问题标题】:Configure Apache with multiple ProxyPass and different ports使用多个 ProxyPass 和不同端口配置 Apache
【发布时间】:2018-04-02 01:16:38
【问题描述】:

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

<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.yyyyyyyyy.co.uk 相同的应用程序。

我怎样才能做到这一点!

【问题讨论】:

  • 如果你使用%{HTTP_HOST}而不是%{SERVER_NAME}会有什么变化吗?
  • 完全没有变化

标签: apache web mod-proxy proxypass


【解决方案1】:

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

解决问题的步骤在哪里;

1 删除所有证书

2 在站点可用的自己的文件中重新创建所有虚拟主机 (减去重写部分)

一个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

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

效果很好!

【讨论】:

    猜你喜欢
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2015-08-22
    • 2014-07-17
    • 2020-05-25
    • 2011-12-10
    • 2021-10-06
    相关资源
    最近更新 更多