Nginx Proxy Manager配置出现「map指令不允许在此处」错误求助
Nginx Proxy Manager配置出现「map指令不允许在此处」错误求助
兄弟,这个问题我太熟了!你看你的2.conf配置里犯了一个Nginx语法的基础错误——map指令只能放在http全局块里,绝对不能嵌套在server或者location块内部。
你看你的配置,文件最顶部已经在http级别定义了一次map $scheme $hsts_header,结果在下面的server块里又写了一遍同样的map,这就触发了Nginx的语法检查报错,因为Nginx不允许在server上下文里用map指令。
修复步骤很简单:
- 删掉
server块内部的那段map代码(就是你配置里从map $scheme $hsts_header {到}的部分) - 如果你需要启用HSTS,直接在
server块里使用已经定义好的$hsts_header变量就行,比如加一行:add_header Strict-Transport-Security $hsts_header always;
修正后的2.conf大概是这样:
map $scheme $hsts_header { https "max-age=63072000; preload"; } server { set $forward_scheme http; set $server "api"; set $port 1998; listen 80; listen [::]:80; server_name fifumain.site www.fifumain.site; # Block Exploits include conf.d/include/block-exploits.conf; access_log /data/logs/proxy-host-2_access.log proxy; error_log /data/logs/proxy-host-2_error.log warn; # 这里直接用全局定义的变量就行 add_header Strict-Transport-Security $hsts_header always; location /api/v1/ { proxy_set_header Host $host; proxy_set_header X-Forwarded-Scheme $scheme; # 剩下的代理配置继续保留... } }
改完之后重启Nginx Proxy Manager的服务,应该就能正常加载配置,SSL证书也能正常生效啦!
备注:内容来源于stack exchange,提问作者fifumain
相关产品推荐
相关产品推荐

