我在 Centos 6.5 上安装了一个简单的 LAMP 堆栈,其中包含 httpd/Apache。我在 /etc/httpd/sites-available/acute.conf 中设置了我的 vhost,如下所示:
<VirtualHost *:80>
ServerName acutemedical.co
ServerAlias acutemedical.co
DocumentRoot /var/www/html
ErrorLog /var/www/log/error.log
CustomLog /var/www/log/requests.log combined
Redirect permanent / https://acutemedical.co/
</VirtualHost>
<VirtualHost *:443>
ServerName acutemedical.co
ServerAlias acutemedical.co
DocumentRoot /var/www/html
ErrorLog /var/www/log/error.log
CustomLog /var/www/log/requests.log combined
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/server.crt
SSLCertificateKeyFile /etc/httpd/ssl/server.key
</VirtualHost>
以下是我的 iptables 规则集的输出:
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
如果不使用重定向,访问端口 80 上的站点时,站点将正常运行。如果访问端口 443 上的站点,则会出现拒绝连接的情况。当我将重定向指令留在 80 vhost 块中时,也会出现同样的问题。
我尝试使用 http 和 https 卷曲每个 url,但只有 http 有效。
我之前设置过这个,但已经一年左右了(我现在主要使用 nginx)。所以我想知道是否有人可以看看我的配置并告诉我我做错了什么。
答案1
我很快就搞明白了,在我的 httpd.conf 中,我将端口绑定在那里,而不是 vhost。因此,我从 httpd.conf 中删除了它们,并将 Listen 80 和 Listen 443 添加到 vhost 文件中,这样就成功了。
答案2
我怀疑您没有启用以下功能:
NameVirtualHost *:80
NameVirtualHost *:443
您的错误日志(ssl_error_log)中应该有一些内容解释为什么没有任何内容在端口 443 上监听。
但是您的路径看起来非常不像 CentOS/RHEL6(没有站点可用结构,并且不记录到 /var/www/log/ ),所以我敢打赌您的其余配置也不会像预期的那样。
PS. ServerAlias 行是多余的。