【问题标题】:Apache2: how to avoid that one website reply as default?Apache2:如何避免一个网站默认回复?
【发布时间】:2020-04-21 08:48:40
【问题描述】:

我有一个带有几个网站的服务器 apache2。

其中一个在 http 和 https 上都提供 所有其他人都是仅在 http 上的服务器

我从公司的前雇员那里继承了这种糟糕的情况,不要怪我

如果我尝试通过 https 访问其他网站,我认为 apach2 正在服务于通过 https 访问的第一个(也是唯一一个)服务器,即使它具有不同的域。

如果我访问https://blablbalca.com,apache2 知道 blablbalca.com 不在 https 上提供服务,但它没有给我 404,它提供https://anotherwebsite.com

什么指令告诉 apache 在错过定义的情况下自动提供“第一个”?

如何解决?

编辑:我找到了一种更优雅、更通用的方式来表达我的问题:

如果指向同一个 ip 的域实际上不是从我的服务器提供的,我如何避免 apache2 为随机虚拟主机提供服务?

【问题讨论】:

    标签: apache2


    【解决方案1】:

    您可以命名最佳虚拟主机并设置ServerNameServerAlias 以匹配每个网站。此外,如果您希望“blablbalca.com”在通过 HTTPs 访问时返回错误,则必须在 your_site.conf 中设置一个虚拟主机来处理来自 https 端口的流量。比如进行重定向或显示错误页面。

    The default configuration file that deals with the incoming connection from a domain name that is not on the server or without domain name at all (direct IP connection):
    
    For port 80:
    
    <VirtualHost *:80>
    
            ProxyPass "/" "http://your/path/here"
            ProxyPassReverse "/" "http://your/path/here"
    
    </VirtualHost>
    
    For port 443 (SSL):
    
    <VirtualHost *:443>
    
            ProxyPass "/" "http://your/path/here"
            ProxyPassReverse "/" "http://your/path/here"
    
    </VirtualHost>
    
    The website with a domain:
    
    <VirtualHost *:80>
    
            ServerName yoursite.com
            ServerAlias www.yoursite.com
            ServerAdmin none@webhost.com
            DocumentRoot /var/www/yourWebsite
    
    </VirtualHost>
    
    

    我删除了很多指令,只保留我们在这种情况下关注的指令。

    【讨论】:

    • 感谢您的解决方法。但我的问题是,如果指向我的网络服务器的域不是我的网络服务器的真正服务器,如何避免访问“随机”网站。
    • 如果域名不在您的网站上,那么流量永远不会到达。
    • 这是一个真实的情况:一个域(旧的,被遗忘的)指向我的服务器,而我的服务器不再为这个网站提供服务。问题不在于流量,但我不希望随机提供虚拟主机服务器。
    • 在默认配置中使用基于端口的处理。如果没有匹配的域,那么它将回退到基于端口的虚拟主机,您可以在那里处理它。否则就没有其他办法了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多