2014-11-06 80 views
1

我試圖用Naxsi,以確保我的Nginx服務器,但是當我試圖重新啓動Nginx的我得到這個錯誤:爲什麼Nginx在包含Naxsi規則時返回錯誤?

Restarting nginx: nginx: [emerg] "LearningMode" directive is not allowed here in /etc/nginx/naxsi.rules:4 
nginx: configuration file /etc/nginx/nginx.conf test failed 

這裏是我的nginx.conf文件

user www-data; 
worker_processes 4; 
pid /var/run/nginx.pid; 

events { 
    worker_connections 768; 
} 

http { 
    sendfile    on; 

    tcp_nopush   on; 
    tcp_nodelay   on; 

    keepalive_timeout  65; 
    types_hash_max_size 2048; 

    include    /etc/nginx/mime.types; 
    default_type   application/octet-stream; 

    access_log   /var/log/nginx/access.log; 
    error_log    /var/log/nginx/error.log; 

    gzip     on; 
    gzip_disable   "msie6"; 
    gzip_types   text/plain 
         text/css 
         application/json 
         application/x-javascript 
         text/xml 
         application/xml 
         application/xml+rss 
         text/javascript; 

    include    /etc/nginx/naxsi_core.rules; 
    include    /etc/nginx/conf.d/*.conf; 
    include    /etc/nginx/sites-enabled/*; 
} 

naxsi_core.rules是文件默認naxsi的規則。 conf.d所以沒有icluded規則和內部sites-enabled是我的默認服務器的conf文件是空的:

server { 
listen   8090; 
server_name  example.com; 
root    /home/test/unicorn/public; 
include   /etc/nginx/naxsi.rules; 
} 

在這裏,我包括naxsi.rules這是默認的規則naxsi文件:

LearningMode; 
SecRulesEnabled; 
#SecRulesDisabled; 
DeniedUrl "/RequestDenied"; 

## check rules 
CheckRule "$SQL >= 8" BLOCK; 
CheckRule "$RFI >= 8" BLOCK; 
CheckRule "$TRAVERSAL >= 4" BLOCK; 
CheckRule "$EVADE >= 4" BLOCK; 
CheckRule "$XSS >= 8" BLOCK; 

回答

1

您的文件「 naxsi.rules「不包含在右側的塊中。

你需要將它移動到位置塊:

location/{ 
     include /etc/nginx/naxsi.rules; 
} 
+0

這是正確的。錯誤的塊。 – 2016-04-06 15:32:30

相關問題