Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您能否在Apache httpd v2.4.6中编辑传入请求的标题?_Apache - Fatal编程技术网

您能否在Apache httpd v2.4.6中编辑传入请求的标题?

您能否在Apache httpd v2.4.6中编辑传入请求的标题?,apache,Apache,Apache文档说明ProxyPreserve主机: 启用时,此选项将把主机:行从传入请求传递到代理主机 否则: ProxyPass行中指定的主机名(已使用) 在Apache配置中,是否有任何方法可以将自定义主机设置为不是这两种主机之一的主机? e、 g.ProxySetHost customHostName //编辑 在nginx中,可以使用以下注释: nginx.ingres.kubernetes.io/代理ssl名称: 允许设置代理\u ssl\u名称。这允许覆盖用于验证代理HTTPS服务

Apache文档说明ProxyPreserve主机:

启用时,此选项将把主机:行从传入请求传递到代理主机

否则:

ProxyPass行中指定的主机名(已使用)

在Apache配置中,是否有任何方法可以将自定义主机设置为不是这两种主机之一的主机?
e、 g.
ProxySetHost customHostName

//编辑
在nginx中,可以使用以下注释:

nginx.ingres.kubernetes.io/代理ssl名称
允许设置代理\u ssl\u名称。这允许覆盖用于验证代理HTTPS服务器证书的服务器名称。当与代理HTTPS服务器建立连接时,此值也会通过SNI传递


Apache httpd中有类似的东西吗?

我想我找到了自己的答案。更清楚地说,我正在寻找一种方法来修改通过SNI扩展发送的主机,该扩展发生在http头在apache前端和nginx后端之间发送之前。SNI似乎是在使用SSLProxyPreserveHost时设置的,如果您查看模块的源代码(但不在文档中),这一点很明显

我在github上翻阅了httpd的代理模块源代码,看起来只有3种情况下主机被更改为SNI:

(proxy_util.c-)

案例1:(用注释块解释)

案例2:认为只有设置了正向代理(我使用的是反向代理)时才会发生这种情况

情况3:否则设置为ProxyPass行中指定的主机

        else {
            ssl_hostname = conn->hostname;
        }

我在httpd的一个bug报告中添加了一条评论,如果有人对它感兴趣,请链接:

我想我找到了自己的答案。更清楚地说,我正在寻找一种方法来修改通过SNI扩展发送的主机,该扩展发生在http头在apache前端和nginx后端之间发送之前。SNI似乎是在使用SSLProxyPreserveHost时设置的,如果您查看模块的源代码(但不在文档中),这一点很明显

我在github上翻阅了httpd的代理模块源代码,看起来只有3种情况下主机被更改为SNI:

(proxy_util.c-)

案例1:(用注释块解释)

案例2:认为只有设置了正向代理(我使用的是反向代理)时才会发生这种情况

情况3:否则设置为ProxyPass行中指定的主机

        else {
            ssl_hostname = conn->hostname;
        }

我在httpd的一个bug报告中添加了一条注释,如果有人对它感兴趣,请链接:

proxypervehost
意味着它将在浏览器中保留相同的Apache httpd主机,并从后端服务器获取数据,而不更改浏览器中的主机名。是否有更改URL中主机名的特定要求?@Pandurang我想将代理请求反向到nginx中的特定服务器块。这需要我将请求中的主机设置为相应的服务。我无法在ProxyPass行中设置它,因为它必须设置为ip,因为我无法对DNS进行更改。如果您使用Apache httpd作为前端,使用Nginx作为反向代理,则用户或浏览器只能看到Apache主机名。@Panduang我使用Apache httpd作为Nginx的反向代理。我不知道你是不是有同样的意思。您是说将主机设置为其他主机(减去ProxyPass和ProxyPreserveHost)是不可能的吗?
ProxyPreserveHost
意味着它将在浏览器中保留相同的Apache httpd主机,并从后端服务器获取数据,而不更改浏览器中的主机名。是否有更改URL中主机名的特定要求?@Pandurang我想将代理请求反向到nginx中的特定服务器块。这需要我将请求中的主机设置为相应的服务。我无法在ProxyPass行中设置它,因为它必须设置为ip,因为我无法对DNS进行更改。如果您使用Apache httpd作为前端,使用Nginx作为反向代理,则用户或浏览器只能看到Apache主机名。@Panduang我使用Apache httpd作为Nginx的反向代理。我不知道你是不是有同样的意思。您是说将主机设置为其他对象(减去ProxyPass和proxypervehost)是不可能的吗?
        else {
            ssl_hostname = conn->hostname;
        }