linux – 如何在nginx中限制对动态生成位置的访问?
我的开发人员希望只允许向局域网中的用户下载一些文件.我说好的很简单,我写了nginx配置的更改,如下所示:
好吧从外面我得到403这么好但是从内部(LAN)给我404.为什么? 我已经检查过,磁盘上不存在文件的位置.开发人员告诉我,该位置是由php动态生成的,因此文件位于tmp目录中,但点击链接后: https://example.com/report/download/file/id/somefile.txt它应该开始下载,但它给出了404错误. 最后一个物理loaction是/ restricteddir / download所以file / id / somefile.txt是由php生成的. 为了测试我将位置更改为/ restricteddir / download,然后点击https://example.com/restricteddir/download给了我404. 禁用限制后,我很困惑,dir Everythings工作正常,我可以从https://example.com/report/download/file/id/somefile.txt下载文件并点击https://example.com/report/下载/没有404.那么bug在哪里?我应该将什么添加到我的nginx配置中才能使其正常工作? EDIT1
我在日志中创建了这个:
所以现在我知道nginx在错误的根/usr/share / nginx / html /中找到这个位置而不是/ sites / public 所以也许我应该这样写:
EDIT2 我将root指令移动到服务器块后现在在日志中启用了对location / restricteddir / download / file的限制后我有:
所以现在nginx看起来正确,但没有找到enything.喜欢这个文件不是由php生成的?我很喜欢它,并且不知道什么是wront …这是一个简单的任务restrcit location为什么这不起作用? EDIT3 这就是我现在查看virtualhost配置的方式:
所以我只是将root指令移动到服务器块,之后nginx看起来很好,但仍然在设置404.我很困惑,因为我评论出位置/ restricteddir / download / file块一切正常,我可以下载文件. 对我来说这不是很奇怪,因为它唯一的简单限制……为什么在启用它之后nginx无法找到该文件… 最佳答案 两个建议:>将root指令移动到服务器块中,因此它将应用于其后的所有位置块.这似乎是你的意图. 以及其他一些反馈: 在处理位置指令时,文件是否物理存在的问题没有区别,它们无论如何都会匹配. 我看到的另一个不匹配是你的日志条目引用“restricteddir”,但你的“完整配置”帖子没有提到这一点.它提到了一个“报告”目录. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在nginx的子目录中安装symfony2 app
- OpenResty:使用已经给定的/etc/nginx/nginx.conf文件配置l
- nginx客运轨道 – 403禁止错误
- ruby-on-rails – nginx错误:(13:权限被拒绝)连接到上游时
- nginx – “include_recipe”与Vagrantfile“chef.add_reci
- node.js-使用Nginx乘客时如何在节点Express应用程序中查看c
- ruby-on-rails – 乘客并发连接错误
- PHP会话不存储/保存-php-fpm / nginx / phpmyadmin / cento
- 可以在nginx的上游块中使用“include”指令吗?
- ruby-on-rails – 如果空闲时Rails停止响应
- PHP和nginx出现413 Request Entity Too Large 怎
- 403禁止 – Nginx – 使用正确的凭据
- 缓存-Nginx:向fastcgi_cache响应添加条件到期标
- 在FastCGI应用程序中无法获取HTTP POST的主体
- 缓存 – 具有多个命名位置的NGINX try_files
- ruby-on-rails-使用Nginx和Puma在Ruby on Rails应
- php – 使用nginx的混合IP和基于名称的虚拟主机
- 从.htaccess转换nginx规则
- ssl-Kubernetes:Nginx入口注释- nginx.ingress.
- nginx – 上传超时(110:连接超时)静态内容?