在修改nginx的配置后,使用命令nginx -s reload重新加载配置,然后就发布报错如下:

nginx: [emerg] unknown directive "  proxy_pass" in /etc/nginx/conf.d/netcore.conf:10

最终排查原因是我在配置中使用Tab键代替了空格所致,所以当我把配置文件中的Tab替换成空格后一切都正常了。
小技巧:在使用xshell时,移动光标很容易区分出是Tab还是空格。

Nginx系列目录:配置示例

相关文章:

nginx unknown directive "proxy_pass"

Nginx中$host $http_host和$proxy_host区别

Nginx 配置http强制跳转https

您与此网站之间建立的连接并非完全安全(Nginx)

Nginx 反向代理设置 AspNetCore 站点的压缩

报错原因

nginx -s reload 报 unknown directive "proxy_pass",常见原因是指令前存在非法字符——本例是用 Tab 缩进导致解析异常。

解决办法

  • 把配置中的 Tab 全部替换为空格。
  • 用 nginx -t 校验配置语法后再 reload。
  • 检查是否存在不可见字符(如从网页复制内容带入的 BOM)。

小技巧:xshell 等终端里能直观看出 Tab 与空格的差异。