【问题标题】:How to forward servername to nested Apache VirtualHost?如何将服务器名转发到嵌套的 Apache VirtualHost?
【发布时间】:2021-10-03 17:50:53
【问题描述】:
  • NAS: QNAP
  • Docker 镜像: php:8.0-apache

我有一个 NAS,其中包含许多 dockerised 服务,所有域都指向 NAS,Apache 反向代理设置为指向正确的 Docker Container IP:PORT

所有这些都很好。

我决定通过添加一个容器来托管我所有的玩具网站来挑战自己,但我不知道如何设置反向代理,因此 NAS 中的 ServerName Apache VirtualHost 被转发到容器的 @987654324 @ 指向正确的文件夹。

该站点位于 NAS 上的一个文件夹中 /share/dev/web/sites

通过下面的配置,我可以浏览到http://sites.mydomain.com/sites,而我想做的是访问http://sites.mydomain.com

我认为我的NAS Apache VirtualHost 没有转发servername,所以Docker Container Apache VirtualHost 不知道如何过滤流量。

我尝试了许多不同的 apache 设置,但都没有成功,有人能指点一下吗?

docker-compose

version: '3.8'
services:
  php-apache-environment:
    container_name: php-apache
    image: php:8.0-apache
    volumes:
      - /share/dev/web:/var/www/html/
      - /share/dev/docker-composer/php/apache/apache2.conf:/etc/apache2/apache2.conf
      - /share/dev/docker-composer/php/apache/custom.conf:/etc/apache2/sites-available/custom.conf
    ports:
      - 9103:80

NAS Apache 虚拟主机

<VirtualHost *:80>
    ServerName sites.mydomain.com
    ProxyPass / http://192.168.253.53:9103/
    ProxyPassReverse / http://192.168.253.53:9103/
</VirtualHost>

Docker 容器 Apache VirtualHost

<VirtualHost *:80>
  ServerName sites.mydomain.com

  ServerAdmin webmaster@name
  DocumentRoot /var/www/html/sites

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

【问题讨论】:

    标签: docker apache reverse-proxy virtualhost


    【解决方案1】:

    你想要ProxyPreserveHost

    启用后,此选项会将 Host: 行从传入请求传递到代理主机,而不是 ProxyPass 行中指定的主机名。

    此选项通常应关闭。它在特殊配置中非常有用,例如基于代理的大量名称的虚拟主机,其中原始 Host 标头需要由后端服务器评估。

    对于您的配置,类似于:

     <VirtualHost *:80>
        ServerName sites.mydomain.com
        ProxyPreserveHost on
        ProxyPass / http://192.168.253.53:9103/
        ProxyPassReverse / http://192.168.253.53:9103/
    </VirtualHost>
    

    【讨论】:

    • LOL 我只是来这里添加我自己的答案。当我在 SOF 上撰写问题时经常发生这种情况,我很快就会找到答案。这是橡皮鸭效应还是 SOF 与 Google 勾结以隐藏答案,直到我在这里发布:P
    猜你喜欢
    • 2019-02-14
    • 1970-01-01
    • 2015-08-22
    • 2011-12-11
    • 1970-01-01
    • 2012-04-23
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多