Nginx:“在;此处不允许使用指令“;

Nginx:“在;此处不允许使用指令“;,nginx,include,directive,Nginx,Include,Directive,我在/etc/nginx/conf.d/default.conf中有一个足够标准的nginx-conf文件,它有一个包含另一个文件的服务器块,例如 server { ... include /etc/nginx/conf.d/nginx-redirects.conf; ... } 顾名思义,nginx-redirects.conf文件只执行一长串重定向,例如: rewrite ^/.../.../...$ https://www.example.com/.../.../... p

我在/etc/nginx/conf.d/default.conf中有一个足够标准的nginx-conf文件,它有一个包含另一个文件的服务器块,例如

server {
  ...
  include /etc/nginx/conf.d/nginx-redirects.conf;
  ...
}
顾名思义,nginx-redirects.conf文件只执行一长串重定向,例如:

rewrite  ^/.../.../...$ https://www.example.com/.../.../... permanent;
rewrite  ^/.../.../...$ https://www.example.com/.../.../... permanent;
...
但是,当我重新启动nginx时,会出现以下错误:

nginx:[emerg]“rewrite”指令在中不允许在此处使用 /etc/nginx/conf.d/nginx重定向.conf:1 nginx:configuration文件 /etc/nginx/nginx.conf测试失败

我尝试将我的长重定向列表封装在nginx-redirects.conf中的location/block中,但我得到了与“location”而不是“rewrite”相同的错误。然后,我尝试将位置/块封装到服务器块中,但我得到了与“server”而不是“location”相同的错误


有人知道我做错了什么吗?

把它放在
conf.d
目录中是个坏主意。您可能会发现其他一些配置文件(无论是
nginx.conf
还是
default
)只是将所有这些文件拉入,同时将您的文件吸入错误的上下文中。@RichardSmith谢谢!/etc/nginx/nginx.conf表示在/etc/nginx/conf.d目录中包含所有*.conf文件。我把nginx-redirects.conf文件放在另一个目录中,它工作了。@RichardSmith您能给我一个正确的答案吗?这样其他人,像我一样,会很容易找到它。特别有趣,因为它听起来有悖常理,但有了正确的上下文,就有了完美的意义。