当前位置: 首页 > article >正文

nginx代理服务器配置不正确出现的小bug

最近在完善博客时,发现项目上线后访问一个存在的文件夹是不添加/请求时响应不是预期的403或者404。
代理服务器的default配置如下:
location / {

            proxy_pass http://backend;
            proxy_set_header Referer $http_referer;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
    }

后端nginx根目录下放了一个css文件夹,访问时地址是
http://domain.com/css,正常情况下响应应该是404或者自动加上/变为http://domain.com/css/,但是它却是http://domain.com:81/css/,81是我们代理服务器监听的端口。这种请求如果配置不当会将我们代理服务器监听的端口暴露出来,而且也影响用户体验。

在这里插入图片描述

而如果你访问一个不存在的文件则直接正常反回404。也就是说如果请求的文件名和你的服务器上的文件夹名一样的话,在这种配置下是有问题的。

在这里插入图片描述

两种解决方法:
一、精确匹配,一个个添加配置,比如:
location = /css {
deny all;
}
这种配置虽然繁琐,但是有效果,也不影响网站正常加载js、css,缺点就是需要一个一个配置,并且网站目录不能有同名文件。

!

二、在http块中添加try_files $uri $uri/ =404;
location / {
try_files $uri $uri/ =404;
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

最后再提醒大家,测试的时候一定要清空浏览器缓存,要不然会影响测试结果!


http://www.kler.cn/a/501850.html

相关文章:

  • 【微服务】面试题 5、分布式系统理论:CAP 与 BASE 详解
  • 详解 Docker 启动 Windows 容器第二篇:技术原理与未来发展方向
  • pandas与sql对应关系【帮助sql使用者快速上手pandas】
  • 备战蓝桥杯:树的存储与遍历(dfs和bfs)
  • el-table自定义按钮控制扩展expand
  • TPS61022 PFM的机制以及TPS61xxx转换器的PFM与PWM之间的负载阈值
  • SQL中的公用表表达式
  • [论文阅读]Corpus Poisoning via Approximate Greedy Gradient Descent
  • SQL语言的面向对象编程
  • 全面代码行数统计工具——CodeLinesCounter
  • 基于C#Halcon3D点云图视图查看实现封装心得
  • 实战篇: BiLSTM+CRF实现中文分词
  • 统信操作系统FTP
  • 深度学习camp-第J7周:对于ResNeXt-50算法的思考
  • HTML学习笔记记录---速预CSS(1) 选择器类型
  • Github出现复杂问题 无法合并 分支冲突太多 如何复原
  • 52_Lua数据库访问
  • 从零开始开发纯血鸿蒙应用之处理外部文件
  • 在Proteus软件仿真STM32F103寄存器玩俄罗斯方块之第二篇
  • 在 Azure 100 学生订阅中新建一台 Ubuntu VPS,并通过 Docker 部署 Nginx 服务器
  • 《Java核心技术II》网络使用telnet
  • android四大组件之一——Service
  • MyBatis(一)
  • 阿里云存储图像bug修复
  • 4. scala高阶之隐式转换与泛型
  • vue3+vite+ts集成第三方js