【发布时间】:2014-02-11 21:56:54
【问题描述】:
我发现我们的网络服务器出现了一些有趣的行为。
我使用 VirtuaHosts 指令设置了一些 https URL,并将它们放在非标准端口上。我正在使用端口 4443 和 4543。
所以浏览到https://test-domain.com:4443 有效,https://test2-domain.com:4543 也是如此。但是,如果我输入 test-domain2.com:4443 或 test-domain.com:4445 也会通过端口将您带到正确的网页。 (当我测试时,我正在输入完整链接,堆栈溢出不会让我输入超过两个,所以我删除了问题的 https:// 部分)。
基本上,只要您传递一个有效的域,您就可以输入任何一个端口,它会将您带到托管在该端口上的站点。我认为这种行为是不可能的。我想如果我用站点 B 端口键入站点 A 的域,我会返回一个未找到页面或另一个错误页面,而不是我总是被带到站点 B。它解析到端口上托管的任何内容。
如果有人有任何建议或知道我做错了什么,我会很感激答案或帮助。
这里是 Apache 配置... 我确实查看了在线 apache 文档,并尝试使用 NameVirtualHost 和 VirtualHost 的网络服务器 IP 地址进行试验,并产生了相同的行为
NameVirtualHost *:4443
<VirtualHost *:4443>
#SetEnv VHOST "test.domain.com"
ServerName test.domain.com
DocumentRoot /var/www/test/public
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile ssl/test.domain.com.crt
SSLCertificateKeyFile ssl/test.domain.com.key
SSLCertificateChainFile ssl/gd_bundle.crt
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
ErrorLog logs/test-error_log
CustomLog logs/test-access_log common
</VirtualHost>
NameVirtualHost *:4543
<VirtualHost *:4543>
#SetEnv VHOST "test2.domain.com"
ServerName test2.domain.com
DocumentRoot /var/www/test2/public
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile ssl/test2.domain.com.crt
SSLCertificateKeyFile ssl/test2.domain.com.key
SSLCertificateChainFile ssl/gd_bundle.crt
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
ErrorLog logs/test2-error_log
CustomLog logs/test2-access_log common
</VirtualHost>
跟进,我尝试添加以下部分: 重定向 404 / ErrorDocument 404“没有这样的站点。检查 URL 拼写。我们的主站点是 \ http://test1.domain.com/'>http:/test1.domain.com"
<VirtualHost *:4543>
Redirect 404 /
ErrorDocument 404 "No Such Site. Check the URL spelling. Our main site is \
<a href='http://test2.domain.com/'>http://test2.domain.com"
</VirtualHost>
而 apachectl -S 显示如下:
*:4543 is a NameVirtualHost
default server test2.domain.com (/etc/httpd/conf.d/test.https.conf:76)
port 4543 namevhost test2.domain.com (/etc/httpd/conf.d/test.https.conf:76)
port 4543 namevhost ip-10-0-1-204.ec2.internal (/etc/httpd/conf.d/test.https.conf:92)
*:4443 is a NameVirtualHost
default server test1.domain.com (/etc/httpd/conf.d/test.https.conf:51)
port 4443 namevhost test1.domain.com (/etc/httpd/conf.d/test.https.conf:51)
port 4443 namevhost ip-10-0-1-204.ec2.internal (/etc/httpd/conf.d/test.https.conf:68)
*:443 is a NameVirtualHost
default server test.domain.com (/etc/httpd/conf.d/test.https.conf:20)
port 443 namevhost test.domain.com /etc/httpd/conf.d/test.https.conf:20)
port 443 namevhost ip-10-0-1-204.ec2.internal (/etc/httpd/conf.d/ssl.conf:76)
*:80 is a NameVirtualHost
default server test.domain.com (/etc/httpd/conf.d/test.http.conf:3)
port 80 namevhost test.domain.com (/etc/httpd/conf.d/test.http.conf:3)
port 80 namevhost test1.domain.com (/etc/httpd/conf.d/test.http.conf:8)
port 80 namevhost test2.domain.com (/etc/httpd/conf.d/test.http.conf:13)
port 80 namevhost ip-10-0-1-204.ec2.internal (/etc/httpd/conf.d/test.http.conf:18)
wild alias *.domain.com
【问题讨论】:
标签: apache