使用Nginx设置常量SERVER_NAME

Pav*_*rba 3 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

fastcgi_param  SERVER_NAME example.com
Run Code Online (Sandbox Code Playgroud)

它仍然是空的。

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

Ric*_*ith 8

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

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