使用nginx设置常量SERVER_NAME

时间:2017-01-12 10:29:55

标签: php nginx

我的 nginx.conf 具有以下结构:

http {
    [ ... ]

    server {
        [ ... ]

        location ~ \.php$ {
            fastcgi_pass  unix:/run/php/php7.0-fpm.sock;
            fastcgi_split_path_info  ^(.+\.php)(/.*)$;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param  SERVER_NAME $host;
            fastcgi_read_timeout  3000;
            include  fastcgi_params;
        }
    }
}

这个nginx在Docker中运行,所以它不知道,哪个域链接到它(托管系统上有nginx反向代理)。但我有一个问题,当我尝试从PHP访问$_SERVER['SERVER_NAME']时,它是空的...如何将其设置为常量值?我试过的时候:

fastcgi_param  SERVER_NAME example.com

它仍然是空的。

请注意,我必须使用SERVER_NAME,因为它是第3部分代码。

1 个答案:

答案 0 :(得分:4)

设置相同参数的多个fastcgi_param语句(在同一块级别)将静默使用上一个语句中的值。 这包括通过include指令读取的语句。

始终在fastcgi_param语句后声明include fastcgi_params;语句,以避免配置文件中出现任何歧义。