在这里有点束缚。我正在尝试将网站 (www.monkhouselaw.com) 从一家托管公司转移到我的 Digital Ocean VPS。我已将 DNS 设置更改为:
* -> 107.170.29.18
www -> 107.170.29.18
monkhouselaw -> 107.170.29.18
然后这会指向我的 VPS 上的 Apache 虚拟主机。
目前我只是想在我的服务器上加载一个 PHP 索引页面。一旦它工作,我将带来 WordPress 安装。可悲的是,它,好吧,不工作。
当前访问 www.monkhouselaw.com 会返回 503 错误。我根本无法确定为什么。检查 Apache 错误日志显示:
(111)Connection refused: AH00957: HTTP: attempt to connect to 127.0.0.1:3000 (localhost) failed
[Sun Jun 05 16:44:46.900331 2016] [proxy:error] [pid 2207] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s
[Sun Jun 05 16:44:46.900339 2016] [proxy_http:error] [pid 2207] [client 108.63.121.42:51559] AH01114: HTTP: failed to make connection to backend: localhost, referer: (long url)
而且,后来,这个:
[Sun Jun 05 16:45:21.841236 2016] [proxy:error] [pid 2198] AH00940: HTTP: disabled connection for (localhost)
我试过检查 localhost 上的端口 3000 是否正在侦听,但不是. 但是,据我了解,应该有一个预先存在的虚拟主机,它将请求重定向到 3000 端口到 80 端口。该文件是 000-default.conf。该文件比以下内容要多得多,但以下是相关位:
<VirtualHost *:80>
...
LoadModule proxy_module {path-to-modules}/mod_proxy.so
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
...
</VirtualHost>
虽然老实说,我不确定为什么它甚至试图访问端口 3000,因为monkhouselaw 的虚拟主机文件被定向到 80 端口:
<VirtualHost *:80>
DocumentRoot /var/www/monkhouse
ServerName monkhouselaw.com
<Directory "/var/www/monkhouse">
allow from all
Options None
Require all granted
</Directory>
</VirtualHost>
在这一点上,我不知所措。谷歌搜索显示了很多关于 SELinux 的结果,似乎没有安装。例如,我看到了一些建议,可以键入以下内容:
togglesebool httpd_can_network_connect
这只是向我返回了程序“togglesebool”不存在的消息。
从本质上讲,这是一个我需要解决的严重问题,我已经通过两位数的 Google 结果页面试图找到解决方案,但没有运气。
有人可以提供帮助吗?
您对 apache 配置的理解有点倒退和颠倒。我建议阅读有关您尝试配置的任何新软件的文档。:)
简而言之,这部分虚拟主机配置:
...与 apache 如何处理与虚拟主机的连接无关。相反,它配置接收您的请求的侦听器。
*
在这种情况下,它正在侦听端口 80 ( )上的所有 IP 地址 (80
)。vhost 声明中的内容向 apache 描述了它应该如何处理与该虚拟主机的连接。对于您提供的片段,它正在侦听端口 80,并将请求定向到端口 3000,就像它配置的那样。您没有包含整个配置块,因此不清楚这是否是基于名称的虚拟主机。
接下来,您的第二个片段仅包含作为
ServerName
. 这是您可以在此站点上使用的唯一名称,并希望一切正常。由于您当前已配置好东西,因此 www.monkhouselaw.com 将无法正常工作。您需要将其添加为ServerAlias
.