缘起于重装MediaWiki时,因为Nginx配置文件的错误,导致页面显示不正常,输入网站地址后不会自动进入首页,必须手动输入,同时JS和CSS文件也无法加载,排查的结果就是调用fastcgi参数时用错了文件(具体错误见《Mediawiki短链(Short URL)设置》)。
通常可供选择的是fastcgi_paramsfastcgi.conf两个文件,要说区别真不大,但并非一点区别都没有,否则也就不会出现我上面提到的现象了。
以下是网上搜集到的信息,记录一下,方便以后遇到问题时查阅。
它们都是用于配置NGINX与FastCGI应用程序通信的参数文件。
fastcgi_params: 包含了FastCGI应用程序所需的最基本参数,如SCRIPT_FILENAMEQUERY_STRING等。这些参数通常不需要修改。
fastcgi.conf: 包含了更高级的FastCGI参数,可以用于优化FastCGI应用程序的性能,如设置连接超时时间、缓冲区大小等。
fastcgi.conffastcgi_params多了一行SCRIPT_FILENAME的定义

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

注意:documentrootfastcgi_script_name之间没有/。
原本Nginx只有fastcgi_params,后来发现很多人在定义SCRIPT_FILENAME时使用了硬编码的方式,于是为了规范用法便引入了fastcgi.conf
不过这样的话就产生一个疑问:为什么一定要引入一个新的配置文件,而不是修改旧的配置文件?
这是因为fastcgi_param指令是数组型的,和普通指令相同的是:内层替换外层;和普通指令不同的是:当在同级多次使用的时候,是新增而不是替换。
换句话说,如果在同级定义两次SCRIPT_FILENAME,那么它们都会被发送到后端,这可能会导致一些潜在的问题,为了避免此类情况,便引入了一个新的配置文件。

最后修改:2025 年 01 月 21 日
如果觉得我的文章对你有用,请随意赞赏