我有一个wordpress官方容器和一个对接端口80映射到32795外部...当我进入wordpress的管理区域时,我得到了这个错误:
重要提示:此服务器上未启用HTTP环回连接。如果你需要联系你的web主机,告诉他们当PHP试图通过URL http://localhost:32795/wp-admin/admin-ajax.php
连接回站点时,它得到了错误的cURL error 7: Failed to connect to localhost port 32795: Connection refused
。服务器配置可能存在问题(例如本地DNS问题、mod_security等),导致连接无法正常工作。
我认为问题是容器内的站点试图与32795端口而不是80端口通信,但它不能,因为这个门只能从容器的外部看到……
我用phpinfo在站点内创建了一个脚本,并检查了回送连接是否打开……
有解决这个问题的办法吗?我有停靠的窗口和风情
谢谢
发布于 2020-09-24 03:29:39
我在Docker Desktop for Windows上用Nginx运行WordPress时也遇到了类似的问题。我需要在容器的hosts
文件中添加一个条目,该条目将引导我的local.example.com
域访问我的入口nginx控制器,以便WordPress的回送请求能够工作。尽管我的设置可能略有不同,但这可能会对您有所帮助。
打开/Windows/System32/drivers/etc/hosts
并复制host.docker.internal
旁边的IP地址。通过执行以下操作之一,在启动时将域绑定到主机IP的容器的hosts
文件中添加一个条目。IP
是您通过host.docker.internal
从计算机的hosts文件中复制的内容
Docker参数:
--add-host="local.example.com:IP"
Docker compose:
extra_hosts:
- "local.example.com:IP"
Kubernetes:
hostAliases:
- ip: "IP"
hostnames:
- "local.example.com"
发布于 2019-03-06 23:57:24
问题出在容器内部,打开的端口是80
,docker正在为外部连接公开32795
Wordpress配置指向端口32795
,您可以通过执行docker run -p 80:80
操作公开端口80
,并将wordpress配置更改为使用端口80
。
如果不能使用端口:80
,更复杂的解决方案是在内部使用iptables
端口转发
示例
➜ ~ docker run -d --cap-add=NET_ADMIN --cap-add=NET_RAW -p 5000:80 nginx
835b039cc92bd9f32b960181bf370d39869c88f5a757423966b467fe01ac219e
➜ ~ docker exec -it 835b039cc92bd9 bash
root@835b039cc92b:/# apt update -qqq ; apt install iptables -yqqq
root@835b039cc92b:/# iptables -t nat -A OUTPUT -o lo -p tcp --dport 5000 -j REDIRECT --to-
port 80
root@835b039cc92b:/# apt install telnet -yqqq
root@835b039cc92b:/# telnet localhost 5000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
root@835b039cc92b:/# exit
# from outside the container
➜ ~ telnet localhost 5000
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
https://stackoverflow.com/questions/55026639
复制相似问题