nginx的优化加固

简介:

东拚西凑了一些有用的东东,可以贴在nginx配置文件中,

功能比较杂,防盗链、防注入等等

 

 

 
 
  1.    location = /robots.txt { access_log off; log_not_found off; } 
  2.    location = /favicon.ico { access_log off; log_not_found off; } 
  3.    location ~ /\. { access_log off; log_not_found off; deny all; } 
  4.    location ~ ~$ { access_log off; log_not_found off; deny all; } 
  5.    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } 
  6.    location ~ .*\.(js|css)?$ {  expires  12h; } 
  7.  
  8.  
  9. location ~* \.(gif|jpg|png|swf|flv)$ 
  10. if ($host !=’*.yourdomain.com’) { 
  11. return 403; 
  12.  
  13.    ## Block SQL injections 
  14.    set $block_sql_injections 0; 
  15.    if ($query_string ~ "union.*select.*\(") { 
  16.        set $block_sql_injections 1; 
  17.    } 
  18.    if ($query_string ~ "union.*all.*select.*") { 
  19.        set $block_sql_injections 1; 
  20.    } 
  21.    if ($query_string ~ "concat.*\(") { 
  22.        set $block_sql_injections 1; 
  23.    } 
  24.    if ($block_sql_injections = 1) { 
  25.        return 403; 
  26.    } 
  27.  
  28.    ## Block file injections 
  29.    set $block_file_injections 0; 
  30.    if ($query_string ~ "[a-zA-Z0-9_]=http://") { 
  31.        set $block_file_injections 1; 
  32.    } 
  33.    if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") { 
  34.        set $block_file_injections 1; 
  35.    } 
  36.    if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") { 
  37.        set $block_file_injections 1; 
  38.    } 
  39.    if ($block_file_injections = 1) { 
  40.        return 403; 
  41.    } 
  42.  
  43.    ## Block common exploits 
  44.    set $block_common_exploits 0; 
  45.    if ($query_string ~ "(<|%3C).*script.*(>|%3E)") { 
  46.        set $block_common_exploits 1; 
  47.    } 
  48.    if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") { 
  49.        set $block_common_exploits 1; 
  50.    } 
  51.    if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") { 
  52.        set $block_common_exploits 1; 
  53.    } 
  54.    if ($query_string ~ "proc/self/environ") { 
  55.        set $block_common_exploits 1; 
  56.    } 
  57.    if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") { 
  58.        set $block_common_exploits 1; 
  59.    } 
  60.    if ($query_string ~ "base64_(en|de)code\(.*\)") { 
  61.        set $block_common_exploits 1; 
  62.    } 
  63.    if ($block_common_exploits = 1) { 
  64.        return 403; 
  65.    } 
  66.  
  67.    ## Block spam 
  68.    set $block_spam 0; 
  69.    if ($query_string ~ "\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b") { 
  70.        set $block_spam 1; 
  71.    } 
  72.    if ($query_string ~ "\b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b") { 
  73.        set $block_spam 1; 
  74.    } 
  75.    if ($query_string ~ "\b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b") { 
  76.        set $block_spam 1; 
  77.    } 
  78.    if ($query_string ~ "\b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b") { 
  79.        set $block_spam 1; 
  80.    } 
  81.    if ($block_spam = 1) { 
  82.        return 403; 
  83.    } 
  84.  
  85.    ## Block user agents 
  86.    set $block_user_agents 0; 
  87.  
  88.    # Don't disable wget if you need it to run cron jobs! 
  89.    #if ($http_user_agent ~ "Wget") { 
  90.    #    set $block_user_agents 1; 
  91.    #} 
  92.  
  93.    # Disable Akeeba Remote Control 2.5 and earlier 
  94.    if ($http_user_agent ~ "Indy Library") { 
  95.        set $block_user_agents 1; 
  96.    } 
  97.  
  98.    # Common bandwidth hoggers and hacking tools. 
  99.    if ($http_user_agent ~ "libwww-perl") { 
  100.        set $block_user_agents 1; 
  101.    } 
  102.    if ($http_user_agent ~ "GetRight") { 
  103.        set $block_user_agents 1; 
  104.    } 
  105.    if ($http_user_agent ~ "GetWeb!") { 
  106.        set $block_user_agents 1; 
  107.    } 
  108.    if ($http_user_agent ~ "Go!Zilla") { 
  109.        set $block_user_agents 1; 
  110.    } 
  111.    if ($http_user_agent ~ "Download Demon") { 
  112.        set $block_user_agents 1; 
  113.    } 
  114.    if ($http_user_agent ~ "Go-Ahead-Got-It") { 
  115.        set $block_user_agents 1; 
  116.    } 
  117.    if ($http_user_agent ~ "TurnitinBot") { 
  118.        set $block_user_agents 1; 
  119.    } 
  120.    if ($http_user_agent ~ "GrabNet") { 
  121.        set $block_user_agents 1; 
  122.    } 
  123.  
  124.    if ($block_user_agents = 1) { 
  125.        return 403; 
  126.    } 

 

使用方法

1、按照rpm的标准安装的路径,假设配置文件为/etc/nginx/nginx.conf 和/etc/nginx/conf.d/default.conf ,将上述内容保存为 /etc/nginx/nginx-extra.conf

 

2、在server 栏中加入,“ include nginx-extra.conf ” ,也就是如下格式:

 
 
  1. server { 
  2. [...] 
  3.  
  4. include nginx-extra.conf 

 

注:有大段代码摘自howtoforge










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/957731,如需转载请自行联系原作者

目录
相关文章
|
应用服务中间件 nginx
nginx优化:URI过长或request header过大导致400或414报错
当出现URI过长或请求头过大导致400或414报错时,可以通过以下方式对Nginx进行优化: 1. 调整client_max_body_size参数:该参数用于限制请求体的大小。默认情况下,Nginx的client_max_body_size参数设置为1M。如果请求体超过这个大小,Nginx会返回400错误。您可以根据实际需求适当增加这个值,例如设置为10M或更大。 ``` http { client_max_body_size 10M; } ``` 2. 调整large_client_header_buffers参数:该参数用于调整请求头缓冲区的大
7505 0
|
11月前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
707 3
|
缓存 前端开发 JavaScript
nginx的优化
nginx的优化
|
缓存 监控 负载均衡
nginx相关配置及高并发优化
Nginx的高并发优化是一个综合性的过程,需要根据具体的业务场景和硬件资源量身定制。以上配置只是基础,实际应用中还需根据服务器监控数据进行持续调整和优化。例如,利用工具如ab(Apache Benchmarks)进行压力测试,监控CPU、内存、网络和磁盘I/O等资源使用情况,确保配置的有效性和服务的稳定性。
483 0
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
249 2
|
缓存 前端开发 Java
"揭秘!SpringBoot携手Nginx,性能飙升秘籍大公开:轻松掌握配置优化,让你的应用快如闪电!"
【8月更文挑战第11天】随着微服务架构的发展,SpringBoot成为构建RESTful API的首选,Nginx则作为高性能的反向代理服务器提升应用性能。本文将探讨两者如何协同工作,包括Nginx的负载均衡策略、静态资源缓存及数据压缩配置;同时讨论SpringBoot的线程池优化、缓存策略及性能监控。通过这些方法,帮助开发者显著提高系统的整体性能和可用性。
744 1
|
缓存 负载均衡 应用服务中间件
Nginx反向代理优化
教你如何做好Nginx反向代理优化
431 5
|
监控 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(2)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
287 1
|
负载均衡 前端开发 应用服务中间件
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽(1)
前端开发者必备:Nginx入门实战宝典,从部署到优化一网打尽
485 1
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。