Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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
AH01114:HTTP:无法连接到后端:localhost(apache作为docker容器)_Apache_Docker - Fatal编程技术网

AH01114:HTTP:无法连接到后端:localhost(apache作为docker容器)

AH01114:HTTP:无法连接到后端:localhost(apache作为docker容器),apache,docker,Apache,Docker,我试图在本地机器上的服务器应用程序(JIRA)前面安装apache。在某种程度上基于: apache和服务器应用程序都作为docker容器运行 启动我的服务器应用程序工作正常,我可以在以下位置访问web ui: http://localhost:8087 但当我启动apache并尝试在浏览器中访问它时: http://localhost:80 我得到: Service Unavailable 当我看日志时,它说: H00558: httpd: Could not reliably det

我试图在本地机器上的服务器应用程序(JIRA)前面安装apache。在某种程度上基于:

apache和服务器应用程序都作为docker容器运行

启动我的服务器应用程序工作正常,我可以在以下位置访问web ui:

http://localhost:8087
但当我启动apache并尝试在浏览器中访问它时:

http://localhost:80
我得到:

Service Unavailable
当我看日志时,它说:

H00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.0.5. Set the 'ServerName' directive globally to suppress this message
[Mon Apr 01 09:08:50.408757 2019] [mpm_event:notice] [pid 1:tid 140140879032384] AH00489: Apache/2.4.38 (Unix) configured -- resuming normal operations
[Mon Apr 01 09:08:50.409320 2019] [core:notice] [pid 1:tid 140140879032384] AH00094: Command line: 'httpd -D FOREGROUND'
[Mon Apr 01 09:09:53.094495 2019] [proxy:error] [pid 8:tid 140140638869248] (111)Connection refused: AH00957: HTTP: attempt to connect to 127.0.0.1:8087 (localhost) failed
[Mon Apr 01 09:09:53.094571 2019] [proxy_http:error] [pid 8:tid 140140638869248] [client 172.18.0.1:53110] AH01114: HTTP: failed to make connection to backend: localhost
这是我启用/添加的httpd.conf详细信息:

LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
...

<VirtualHost *:80>
  ServerName www.app1.lol
  ProxyPass / http://localhost:8087
</VirtualHost>
下面是我如何启动apache的:

docker run -d -p 80:80 --network sample-network --name my-apache-container my-apache-image
问题是我在httpd.conf文件中的配置还是docker运行命令(或两者的组合)中的配置?

请参考

应将其配置为:

<VirtualHost *:80>
  ServerName localhost
  ProxyPass / http://172.17.0.1:8087
</VirtualHost>

服务器名本地主机
ProxyPass/http://172.17.0.1:8087
或:


服务器名本地主机
ProxyPass/http://ip_addressof_my-server-container:8087

使用:
docker inspect container\u id
查看容器的ip地址。

面对完全相同的问题,我在redhat和debian中都通过下面的命令解决了

sudo iptables-I输入1-I lo-j接受

环回需要以这种方式启用


注意:由于某些安全原因,它默认禁用,我们需要启用它

您在哪里提出172.17.0.1?它是Docker主机和网桥网络之间网关的IP地址。确定该值是否始终相同?这在某些文档中有描述吗?尝试一下,然后让我知道,这里有文档,我以前就遇到过这个问题。
<VirtualHost *:80>
  ServerName localhost
  ProxyPass / http://172.17.0.1:8087
</VirtualHost>
<VirtualHost *:80>
      ServerName localhost
      ProxyPass / http://ip_addressof_my-server-container:8087
</VirtualHost>