首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >此服务器上未启用HTTP环回连接- docker上的wordpress

此服务器上未启用HTTP环回连接- docker上的wordpress
EN

Stack Overflow用户
提问于 2019-03-06 23:27:44
回答 2查看 2.1K关注 0票数 2

我有一个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在站点内创建了一个脚本,并检查了回送连接是否打开……

有解决这个问题的办法吗?我有停靠的窗口和风情

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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参数:

代码语言:javascript
运行
复制
--add-host="local.example.com:IP"

Docker compose:

代码语言:javascript
运行
复制
extra_hosts:
  - "local.example.com:IP"

Kubernetes:

代码语言:javascript
运行
复制
hostAliases:
- ip: "IP"
  hostnames:
  - "local.example.com"
票数 1
EN

Stack Overflow用户

发布于 2019-03-06 23:57:24

问题出在容器内部,打开的端口是80,docker正在为外部连接公开32795

Wordpress配置指向端口32795,您可以通过执行docker run -p 80:80操作公开端口80,并将wordpress配置更改为使用端口80

如果不能使用端口:80,更复杂的解决方案是在内部使用iptables端口转发

示例

代码语言:javascript
运行
复制
➜  ~  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.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55026639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档