配置Nginx服务器 出现 unexpected "}"

本文介绍了一次因网页复制粘贴导致Nginx服务器配置文件出现隐藏字符的问题及解决过程。通过使用grep和cat -A命令定位并移除非法字符,最终使服务器恢复正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前服务器是能够正常运行的,然后在网页上复制粘贴一段代码后,在重启服务器后,就出现这样的错误。

1、可能某处多了或少了一个 “}” 

运行  grep -Ei  "\{|\}"   nginx.conf    显示如下:

events {

}

http {

    server {

        location / { 

       }

        location = /50x.html {

        }

        location ~ \.php(.*)$ {

        }

    }

}

大括号数量匹配。

2、{  无法解析,复制粘贴 可能复制了隐藏的无法解析的字符。而实用cat  -A 可以显示隐藏字符

 

grep -Ei '\{|\}'  nginx.conf | cat -A 显示如下:

events {$

}$

http {$

    server {$

        location / { $

?M-^@M-^@      }$   //此处 为复制粘贴的地方,很明显多了一些隐藏的字符。

        location = /50x.html {$

        }$

        location ~ \.php(.*)$ {$

        }$

    }$

}$

去掉特殊字符后,再启动服务器正常了。所以,配置服务器的时候,尽量不要复制粘贴。

 

`iframe` 和 `nginx` 跨域问题是 Web 开发中常见的问题,特别是当你尝试在一个页面中嵌入另一个域名下的内容时。遇到 `Unexpected token '<'` 的错误通常是由于浏览器的安全策略——同源政策(Same-Origin Policy),它限制了来自不同源的内容如何交互。 当 Nginx 作为反向代理服务器处理请求时,如果目标资源(如一个 JavaScript 文件、HTML 或图片)位于不同域名下,Nginx 需要在响应头添加 `Access-Control-Allow-Origin` 来指定允许的来源。如果没有正确设置这个头部信息,浏览器会解析到预期不是 HTML 的 `<` 标签而引发错误。 解决这个问题的步骤通常包括: 1. **Nginx 设置**: - 在 Nginx配置文件中,增加适当的 `Content-Type` 和 CORS 指令,例如: ```nginx server { location /api { add_header 'Access-Control-Allow-Origin' '*'; # 允许所有源访问 add_header 'Access-Control-Allow-Methods' 'GET, POST'; add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type'; } } ``` 2. **动态设置 CORS**: 如果需要针对特定请求动态设置 CORS,可以考虑使用lua模块。 3. **后端配合**: 后端API也需要返回正确的 `Access-Control-Allow-Origin` 和其他的CORS头信息。 4. **检查资源URL**: 确保你的 `<iframe>` 的 `src` 属性指向的 URL 包含必要的 CORS 头部。 如果你遇到问题,可以检查你的 Nginx 配置是否已正确配置,并确认目标资源是否支持 CORS。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值