Apache2-400使用docker服务名称访问时请求错误,但使用IP地址

Apache2-400使用docker服务名称访问时请求错误,但使用IP地址,docker,docker-swarm,apache2.4,Docker,Docker Swarm,Apache2.4,我正在使用docker stack deploy部署堆栈。在这个堆栈中,nginx作为反向代理,apache2作为后端服务器 现在,如果我使用curl-v从其他容器访问apache2容器http://service_name:8888它返回400个错误请求错误。但是如果我尝试curl-v10.0.9.7:8888它可以使用200个成功代码 我无法确定错误在哪里 000 default.conf <VirtualHost *:*> ServerAdmin admin@sa.com

我正在使用
docker stack deploy部署堆栈。在这个堆栈中,nginx作为反向代理,apache2作为后端服务器

现在,如果我使用
curl-v从其他容器访问apache2容器http://service_name:8888
它返回400个错误请求错误。但是如果我尝试
curl-v10.0.9.7:8888
它可以使用200个成功代码

我无法确定错误在哪里

000 default.conf

<VirtualHost *:*>
  ServerAdmin admin@sa.com
  DocumentRoot "/var/www/site"

  ServerName r.sa.com
  <Directory /var/www/site>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order deny,allow
      Allow from all
  </Directory>

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

</VirtualHost>
Listen 8888
Listen 8889

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

Apache阻止了以下划线(“\ux”)作为主机名的HTTP请求。如果您将服务名称更改为“服务名称”,它将起作用


参考资料:

“400错误请求错误”似乎有一些使用SSL的服务参与,并在请求中接收纯文本。您可以添加一些日志吗?@matiferrigno添加了apache的error.log您可以在执行curl时添加apache和nginx反向代理日志的访问/错误日志吗?您也可以添加到stack.yml吗?
/var/log/apache2/error.log 
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.0.0.9. Set the 'ServerName' directive globally to suppress this message
[Thu Mar 05 07:17:41.921722 2020] [mpm_prefork:notice] [pid 8] AH00163: Apache/2.4.29 (Ubuntu) configured -- resuming normal operations
[Thu Mar 05 07:17:41.922504 2020] [core:notice] [pid 8] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'