set/assign 系统环境变量在哪里(即哪个文件),例如,nginx 在 FreeBSD 上可以像 NODE_ENV 一样读取?

Where (i.e. which file) to set/assign systemwide environment variable which e.g., nginx can read like NODE_ENV on FreeBSD?

FreeBSD 上,我需要在启动时设置 NODE_ENV=production 和其他系统范围的环境变量,在 nginx 启动之前。

哪个是正确的地方,即我这样做的文件?

一种选择是将您的环境变量添加到 setenv 功能中的 /etc/login.conf,例如:

default:\
    :passwd_format=sha512:\
    :copyright=/etc/COPYRIGHT:\
    :welcome=/etc/motd:\
    :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,NODE_ENV=production:\
    ...

来自 login.conf 人:

setenv          list           A comma-separated list of
                               environment variables and
                               values to which they are to
                               be set.

如果您修改 /etc/login.conf 文件,请不要忘记 运行:

cap_mkdb /etc/login.conf

此外,如果您想为 rc(8) service then you might also take a look at the ${name}_env and ${name}_env_file variables described in rc.subr(8). They allow you to set environment variables for services on FreeBSD in rc.conf(5) 设置一些环境变量,例如:

nginx_enable="YES"
nginx_env="NODE_ENV=production"