我在一台旧的 OpenBSD 机器上设置 Web 服务器,每次尝试启动 Apache 时都会收到错误。在我使用 HTTPS 添加虚拟主机后,服务器拒绝启动。
错误
could not resolve host "10.0.1.120:50720" port "https" --- no address associated with name
usr/sbin/apachectl start: httpd could not be started
虚拟主机配置
我的虚拟主机配置如下(/var/www/conf/vhosts/[file].conf
)
Listen 10.0.1.120:50720 https
<VirtualHost *:80>
ServerName [url]
DocumentRoot /var/www/[url]/public_html
</VirtualHost>
<VirtualHost 10.0.1.120:50720>
ServerName [url]
DocumentRoot /var/www/[url]/public_html
ErrorLog /var/www/[url]/error_log
TransferLog /var/www/[url]/access_log
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /var/www/[url]/ssl.crt
SSLCertificateKeyFile /var/www/[url]/ssl.key
SSLCertificateChainFile /var/www/[url]/[ca.pem]
SSLCACertificateFile /var/www/[url]/ca.pem
SSLCACertificateFile /var/www/[url]/ca.pem
<Directory "/var/www/[url]/public_html">
AllowOverride All
</Directory>
</VirtualHost>
网络详细信息
我在防火墙后面运行,使用动态 IP 地址。
我有一个指向我的动态 IP 地址的 A 记录。
在防火墙中,端口 80 和 50720(以及其他端口)指向我的本地 IP 地址(10.0.1.50720),该地址通过 DHCP 中的 MAC 地址静态分配
其他尝试
我使用了通配符 IP 地址 ( Listen *:50720 https
),但出现了同样的错误
有人遇到过这种情况吗?我在 Google 上没有找到太多与此错误消息相关的信息(apache "could not resolve host" "no address with name"
等)。
如果有帮助的话,我很乐意提供更多详细信息。
澄清
[url]
是[subdomain].[subdomain].[domain].us
。我有一个指向我的动态公共 IP 地址的 A 记录。- 我没有编辑我的
/etc/hosts
文件,以前设置虚拟主机(包括带有 SSL 的虚拟主机)时我不需要在任何服务器上这样做
答案1
由于您正在运行 1.3,因此第一个建议是升级它。
第二,1.3 版的文档仍然可用,尽管没有完全公开,因为这是一个非常过时的版本,其中存在安全漏洞。但文档位于httpd.apache.org。
第三个 - 这里的问题是 1.3 不允许你在 Listen 行上声明模块,而 2.4 却允许。因此该行应如下所示:
Listen 10.0.1.120:50720
我还注意到,在上面的配置中,您在 *:80 上有一个 VirtalHost。您需要为运行 VH 的每个端口设置一个 Listen 指令,但也许您已经这样做了,而我却错过了。您的配置文件中可能还有一些其他指令无法与 1.3 配合使用,这就是它无法启动的原因。
最后,有关如何在 OpenBSD 上升级软件包的信息可供参考OpenBSD 常见问题解答。