51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

使用宝塔发现Nginx配置不生效,原因,以及如何解决

前言

有一晚突然去看看状态怎么样,然后SSH连不上,去服务器管理后台发现已经到期被删除啦... 我记得是10月才到期的,看样子是我记错时间了

然后重新开了一台服务器,之前的服务都得重新部署,脑瓜疼...

部署好后个别页面需要在其它网页中使用 <iframe> 标签进行展示,需要进行跨域设置

过程

然后发现无论如何配置 Cors跨域 都不生效.. 我记得我之前配置的时候一次设置就搞定了这次折腾了很久都没搞定..

设置配置如下

    #CORS Settings
    add_header 'Access-Control-Allow-Origin' 'https://*.github.io';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';

    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Frame-Options "ALLOW-FROM https://www.cc.cc";

    add_header Content-Security-Policy "frame-ancestors 'self' https://*.github.io";</code></pre>



 
出师不利,只好请大佬出手,找到了热心的大白大佬,经过一顿摸索排查,找到了原因

 
鉴定完毕:宝塔Nginx配置不生效

 
如何查看是否生效对比图

 
先对Nginx配置add_header

 
```lang-nginx
add_header Strict-Transport-Security "max-age=31536000";

```


 
Nginx配置好后去相应标头里面看,是否有上述配置的内容,然后发现没有

 
继续检查了是否使用CDN等缓存内容发现是直连,并没有缓存等原因,那就是没有生效,鉴定为宝塔自身的原因

 
http://static.51tbox.com/static/2024-11-30/col/28b1e821773c39518c3603e38d27e3cf/619668dc89d1491097fafb8168af681c.png.jpg

 
查到这里找到了原因,后面也比较难以排查比较耗时,我就自己继续深度排查

 
后续偶然打开了一个没有任何配置的单页,发现响应标头内有Nginx配置的内容了

 
诶,瞬间知道了什么原因,可能是反向代理原因导致的,然后去查看了另外几个已经配置了反向代理的页面,果然也没生效

 
就把反向代理取消了 在看咦 生效了,那么原因确定了,就是宝塔面板自带的反向代理原因导致的,具体是哪里不清楚,取消官方自带的反向代理

 
自己在Nginx配置文件,进行手动进行反向代理配置,配置好之后,Nginx添加的add_header内容依然生效,再次鉴定为宝塔面板自带的反向代理配置有问题

 
```lang-nginx
    location / {
        proxy_pass http://localhost:8000;  # 反向代理到后端服务器
        proxy_set_header Host $host;  # 保留原请求的 Host 头
        proxy_set_header X-Real-IP $remote_addr;  # 传递客户端 IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 转发 IP
        proxy_set_header X-Forwarded-Proto $scheme;  # 转发协议
    }

```


 
至此结束了第一阶段内容,虽然 `Cors跨域` 已经解决了,但是 `<iframe>` 标签进行展示还是有问题,详情请看下一篇

赞(1)
未经允许不得转载:工具盒子 » 使用宝塔发现Nginx配置不生效,原因,以及如何解决