我正尝试在同一台机器上的不同 IP 地址上运行 Apache 和 nginx。
这是一台带有一张以太网卡的 Mac Mini。我配置了两个 eth 网络设备。我尝试将 /etc/apache2 中的 apache 配置更改为仅监听一个 IP,并且大部分都有效。但是,第二个 IP 上仍然有一个从 http:80 到 https:443 的 apache 重定向,我不知道还能在哪里查找。我更改了所有虚拟主机、虚拟主机全局文件和 httpd.conf,包括所有默认文件和 __shadow 文件。
所以我想这不是 SSL 配置的问题,因为我根本不想涉及 SSL 部分。这是从 80 到 443 的重定向,这是不应该发生的。
我还需要做哪些更改才能使 apache 仅监听一个 IP 地址而不更改协议?
httpd.conf 太大。重要部分:
#Listen 12.34.56.78:80
<IfDefine !MACOSXSERVER>
Listen 172.1.1.1:80
</IfDefine>
000_any_80__shadow.conf
<VirtualHost 172.1.1.1:80>
ServerName *
RewriteEngine On
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
CustomLog "/var/log/apache2/access_log" combinedvhost
SSLProxyEngine On
SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
SSLProxyProtocol -ALL +SSLv3 +TLSv1
DocumentRoot /var/empty
</VirtualHost>
0000_any_80_.conf.默认
## Default Virtual Host Configuration
<VirtualHost 172.1.1.1:80 >
ServerAdmin [email protected]
DocumentRoot "/var/empty"
DirectoryIndex index.html index.php /wiki/ default.html
CustomLog "/var/log/apache2/access_log" combinedvhost
ErrorLog "/var/log/apache2/error_log"
<IfModule mod_ssl.c>
SSLEngine Off
SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
SSLProtocol -ALL +SSLv3 +TLSv1
SSLProxyEngine On
SSLProxyProtocol -ALL +SSLv3 +TLSv1
</IfModule>
<Directory "/var/empty">
Options All +MultiViews -ExecCGI -Indexes
AllowOverride None
<IfModule mod_dav.c>
DAV Off
</IfModule>
</Directory>
</VirtualHost>
站点/virtual_host_global.conf
Listen 172.1.1.1:443
NameVirtualHost 172.1.1.1:443
Listen 172.1.1.1:80
NameVirtualHost 172.1.1.1:80
apachectl -S
VirtualHost configuration:
Syntax OK
谢谢!
答案1
要使其停止监听 443,请注释掉“Listen 172.1.1.1:443”和相关的 NameVirtualHost 行。您可能应该注释掉 000_any_80__shadow.conf 中的重写规则,或者直接删除或完全排除该文件(如果您不打算使用它)。
不过,奇怪的是,您的apachectl -S
命令没有输出。它应该显示那些虚拟主机。如果您检查主 httpd.conf 文件的底部,它应该有一堆包含行。您能否验证它是否使用了您发布的所有额外 .conf 文件?