Apache AJP、ProxyPass:如何设置主机 header

Apache AJP, ProxyPass : How to set the Host header

我正在尝试找出一种在 AJP 的 ProxyPass 期间设置 "Host" header 内容的方法。

这是我使用 HTTP 的工作配置文件:

<VirtualHost *:80>
    ProxyRequests off
    ProxyPreserveHost off

    ServerName my-external-domain

    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel error

    <Location />
        ProxyPass http://my-internal-tomcat:8080/
        ProxyPassReverse http://my-internal-tomcat:8080/
        Order allow,deny
        Allow from all
    </Location>

</VirtualHost>

在 tomcat 上,检测到的服务器名称是 my-internal-tomcat(我想要的行为)。

这是我与 AJP 的第二次交流:

<VirtualHost *:80>
    ProxyRequests off
    ProxyPreserveHost off

    ServerName my-external-domain

    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel error

    <Location />
        ProxyPass ajp://my-internal-tomcat:8009/
        ProxyPassReverse ajp://my-internal-tomcat:8009/
        Order allow,deny
        Allow from all
    </Location>

</VirtualHost>

使用此 conf,在服务器名称上检测到 不是 my-internal-tomcat

你知道为什么吗?

我的回答可能有误,如有不妥请指正

你根本无法用 AJP 做到这一点。