【问题标题】:nginx reverse proxy and allow some file extension onlynginx 反向代理,只允许某些文件扩展名
【发布时间】:2021-03-09 22:31:52
【问题描述】:

我按照下面的配置设置了 nginx 反向代理,它是工作文件

但我希望这个 nginx 只允许某些文件扩展名,例如 html、png、php、svg、jpg、css、js ..

并阻止其他扩展,经过多次测试并遵循大量指南,我不知道该怎么做

谢谢

server {
    
     listen 443 ssl ;
     listen 8080 ;
   
    
    ssl on;
    ssl_certificate /etc/nginx/bundle.crt;
    ssl_certificate_key /etc/nginx/cert.key;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
   
    server_name mydomain.net;  
   
   
    
     location / {
       proxy_pass https://172.16.0.1:8080/;  # foward all request to another website
       proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forward-Proto http;
        proxy_set_header X-Nginx-Proxy true;
        proxy_redirect off;       
        
        }  

    
  
   
}   

【问题讨论】:

    标签: nginx proxy reverse


    【解决方案1】:

    最简单的就是通过正则表达式检查URI:

    if ($uri !~ \.(html|png|php|svg|jpg|css|js)$) {
        return 403;
    }
    

    要也允许不带扩展名的 URI,请使用

    if ($uri !~ /([^./]*|[^/]*\.(html|png|php|svg|jpg|css|js))$) {
        return 403;
    }
    

    【讨论】:

    • 谢谢兄弟无论如何如何允许不包含任何文件扩展名的url?比如hxxp://mydomain.com/abc/xyz
    • @AnthonyChen 更新了答案。
    • 嗨,Ivan,非常感谢,我的正则表达式非常糟糕,你能帮我修改正则表达式以禁用文件扩展名中区分大小写的检查,并允许 uri 包含“robots.txt”跨度>
    • @AnthonyChen 试试if ($uri !~* /(robots\.txt|[^./]*|[^/]*\.(html|png|php|svg|jpg|css|js))$) { ... }。注意!~* 而不是!~,它使正则表达式匹配不区分大小写。
    • 谢谢 Ivan,正则表达式的工作方式如所描述。你在这方面很专业
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多