【问题标题】:lighttpd configuration $HTTP["host"]lighttpd 配置 $HTTP["host"]
【发布时间】:2010-02-18 16:03:12
【问题描述】:

我正在尝试将我的 lighttpd 服务器配置为使用 fastcgi 模块。我正在(盲目地)遵循的食谱要求 lighttpd.conf 中的以下行

$HTTP["host"] =~ "(^|\.)example\.com$" {

我在虚拟专用服务器上运行,我没有域名,只有 IP。所以我假设我必须用我的 IP 替换域名 - 比如说 100.101.102.103

这不起作用

$HTTP["host"] =~ "(^|\.)100\.101\.102\.103$" {

也没有几个变化。

【问题讨论】:

    标签: lighttpd


    【解决方案1】:

    您可以通过查看 lighttpd 的访问日志来确定任何给定请求的 $HTTP["host"] 的值(它是标准日志行上的第二个条目;如果请求,它将显示为“-”没有指定)。

    如果日志显示你有一个固定的 IP 地址,这是一个更清晰的测试:

    $HTTP["host"] == "100.101.102.103" {
    

    (尽管您使用的正则表达式应该可以工作)。

    这里可能引起混淆的是 $HTTP["host"] 设置为传入请求中“Host:”标头的值,因此它完全在客户端(浏览器、脚本、无论如何)正在发出请求。知道您正在测试的 URL 是什么,可以让事情变得更清楚。

    【讨论】:

      【解决方案2】:

      查找您的 IP 地址,真的有没有 DNS 名称吗?他们至少提供了一个子域。

      最后,您可以只输入“*”,它会响应所有内容。

      你在使用 fastcgi 吗?它真的有所作为。

      【讨论】:

      • 你尝试过我提到的反向查找吗?
      • 我刚刚使用 php 和 python 审查了我自己的 fastcgi 配置(昨天应该这样做)。除非您想重写/重定向 URL,否则您不需要定义 $HTTP["host"]。如果您发布配置,我可以告诉您要更改的内容。
      • 不幸的是,我确实想重定向 URL。反向查找只是给我分配了 VPS 供应商的 IP 地址块。
      • 那么您将如何访问您的网站?您将使用的 http://....... 字符串是什么?只是IP吗?
      • 根据 lighttpd 的文档,您不需要使用 HTTP["host"],除非您想重定向特定域的 url。如果您只托管一个域,则可以使用以下内容: url.rewrite-once = ( "^/id/([0-9]+)$" => "/index.php?id=$1") from this网站:redmine.lighttpd.net/wiki/1/Docs:ModRewrite
      【解决方案3】:

      我发现这行得通:

      $SERVER["socket"] == "0.0.0.0:8000" {
      

      【讨论】:

        猜你喜欢
        • 2017-01-28
        • 2013-07-21
        • 2019-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-04
        • 2012-12-24
        • 1970-01-01
        相关资源
        最近更新 更多