Apache 不会监听指定端口

Apache 不会监听指定端口

我读过有关“端口绑定”和“虚拟主机”的 Apache 文档,但还是找不到解决方案。我还搜索了服务器故障寻找答案,但所有答案都指向同一个解决方案:“将 LISTEN [端口号] 添加到 httpd.conf 文件并重新启动 Apache”。这不起作用。

我正在尝试做的事情:让 Apache 监听端口 510 和 443 上的安全连接。
怎么了:仅端口 443 有效,端口 510 上的安全和不安全请求均失败。

我如何尝试做到这一点(在我的 httpd.conf 文件中):

Listen 80
Listen 443
Listen 510

NameVirtualHost *:510

<VirtualHost *:510>
    ServerName samplesite.com
    ServerAlias *.samplesite.com
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "conf/ssl/_.samplesite.com/_.samplesite.com.crt"
    SSLCertificateKeyFile "conf/ssl/_.samplesite.com/_.samplesite.com.key"
    SSLCertificateChainFile "conf/ssl/_.samplesite.com/gd_bundle.crt"
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    AllowEncodedSlashes On
</VirtualHost>

<VirtualHost *:443>
    ServerName samplesite.com
    ServerAlias *.samplesite.com
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "conf/ssl/_.samplesite.com/_.samplesite.com.crt"
    SSLCertificateKeyFile "conf/ssl/_.samplesite.com/_.samplesite.com.key"
    SSLCertificateChainFile "conf/ssl/_.samplesite.com/gd_bundle.crt"
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    AllowEncodedSlashes On
</VirtualHost>

任何帮助将不胜感激。

答案1

现在我能想到的只有两个原因。

  1. 您的计算机上启用了 Selinux,这会干扰您的设置。要测试这一点,请检查此命令的输出

    # getsebool

如果说的是这样的:

getsebool:  SELinux is enabled

这仅仅意味着 Selinux 已启用。要暂时禁用它,请使用以下命令:

 # setenforce 0

这将暂时禁用您的 Selinux。之后尝试您的 apache 新端口。

  1. 您的机器上启用了防火墙。不确定您使用的是哪个发行版,但请尝试检查机器上的防火墙,如果已启用,请允许访问 510 端口。

  2. 另外,检查命令的输出netstat -npl | grep 510,看看重新启动 apache 后是否真的打开了端口。

答案2

我看到您已为附加 SSL 端口 510 启用了 NameBased 虚拟主机。

名称虚拟主机 *:510

SSL 是一个不同的实体,它不理解 Apache 基于名称的虚拟主机所基于的 HTTP 主机标头。

最好的选择是删除“NameVirtualHost *:510”

相关内容