2014-04-23 62 views
2

今天,我爲nginx安裝了mod_security。我增加了以下塊/etc/nginx/nginx在nginx上安裝modsecurity

server { 
listen  80; 
server_name localhost; 

location/{ 
ModSecurityEnabled on; 
ModSecurityConfig modsecurity.conf; 
} 

} 

Nginx的重啓之後,我得到了以下錯誤:

nginx: [emerg] unknown directive "ModSecurityEnabled" in /etc/nginx/conf.d/nginx.conf:6 
nginx: configuration file /etc/nginx/nginx.conf test failed 

nginx -V輸出:

nginx version: nginx/1.4.7 
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 
TLS SNI support enabled 
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables' 

到底哪裏出問題了?

+0

您確定您已啓用模塊。什麼'nginx -V'顯示? –

+0

是的。我正在更新 – KevinKien

+0

@KevinKien - 在浪費太多時間之前,您需要對與Nginx的ModSecurity集成進行一些研究。據我所知,沒有ModSecurity的版本可以與Nginx正常協作 - 請參閱http://serverfault.com/questions/772136/any-versions-of-modsecurity-that-works-with-recent-versions-的,Nginx的 – Shorn

回答

6

根據官方文檔:

The extensibility model of the nginx server does not include dynamically loaded modules, thus ModSecurity must be compiled with the source code of the main server. Since nginx is available on multiple Unix-based platforms (and also on Windows), for now the recommended way of obtaining ModSecurity for nginx is compilation in the designated environment.

來源:https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#Installation_for_NGINX

你不能只是增加一些線路在nginx.conf得到它的工作。

您可能還需要考慮以下幾點,如果你想更有效地幫助並在此期間參與制定堆棧溢出一個更好的地方:

  • 尋求幫助之前,請閱讀文檔(我花了3分鐘來找出它的工作方式)。
  • 爲您的問題選擇更明確的標題。
  • 嘗試自動更正內容以使其更易於閱讀。

祝你好運!