我有一个网站建立玩!框架我使用 NGinx 和 ssl 来展示。
一切正常,但我想根据 url 实现文件上传限制:
- 如果用户上传文件到 */pages/** (/页/或者/页面/{id}/编辑),我将限制大小为10月(它将是 zip 档案)
- 如果用户上传文件到 */images/** (/图片/或者/图片/{id}/编辑),我将限制大小为2月(仅限图像)
这就是我陷入困境的地方:
- 我看到了
client_max_body_size
指令,这正是我想要的,但是我是否必须为每个位置{}指定proxy_*配置? - 如果用户达到允许的配额,我会在我的应用程序中显示一条特定消息(位于 /errors/413)。如果我直接使用浏览器,它可以正常工作。但使用下面的配置,我得到了一个“504网关超时“。 为什么?
这是我的配置文件:
server {
listen 443;
server_name www.mywebsite.com;
access_log /var/log/nginx/mywebsite_access.log;
error_log /var/log/nginx/mywebsite_error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/cert.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP:!kEDH;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:9010;
proxy_redirect off;
client_max_body_size 2m;
error_page 413 =200 /errors/413;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
非常感谢您的帮助 ! :)
答案1
请参阅Nginx 文档这客户端最大主体大小指令也可以在服务器块中使用。