我已将 apache httpd 服务器配置为代理转发器。以下是我的 conf 文件详细信息
Listen 0.0.0.0:9999
Listen [::]:9999
<VirtualHost *:9999>
SSLEngine off
SSLProxyEngine On
SSLCertificateFile /etc/httpd/ssl/ca.crt
SSLCertificateKeyFile /etc/httpd/ssl/ca.key
ProxyRequests Off
ProxyPreserveHost On
RewriteEngine on
RewriteRule ^/rest/v1/ https://%{HTTP_HOST}/rest/v1/
</VirtualHost>
我正在使用 curl 客户端
对于 IPv4:
卷曲http://192.168.56.11/rest/v1/–代理 0.0.0.0:9999 -v
它运行良好,我得到了正确的结果
对于 IPv6:
卷曲-6http://fe80::2:0:9:1%eth1/rest/v1/–代理[::]:9999-v
使用 ipv6 时,调用失败,我收到的响应代码为“400”。此 ipv6 请求的 error_log 中显示以下错误消息
[错误] [客户端::1] 请求失败:读取标头时出错
实际上,目标服务器是 Jetty 服务器,但在发生故障时,我看到的值为“服务器:Apache/2.2.15 (CentOS)”。此外,没有到达目的地的调用日志。它实际上是在代理中失败。
答案1
您的VirtualHost
设置仅用于处理 IPv4 连接。
<VirtualHost *:9999>
您需要进行设置以处理 IPv4 和 IPv6 连接。
<VirtualHost *:9999 [::]:9999>