tests: Marks the run-regression-tests-nginx.pl script as executable.

This patch just add +x to  run-regression-tests-nginx.pl.
tests: adds test-regression-nginx to the makefile

This patch adds the nginx regression test entry to project makefile.
tests: Adds random data to a post making it workable in nginx

For some reason nginx fails in a post with no body. This patch adds some random
data here. Other platforms should not be affected.
tests: Sleeps over 20 seconds if nginx failed to exit immediately

Sometimes nginx failed to exit cleanly in the expected time. This patch adds
the capability to wait for more 20 seconds.
nginx: fix missing headers while SecResponseBodyAccess was On

The problem was caused by the fact that ModSecutiry was telling Nginx that
headers had been sent when, in fact, had not. This modification was added in
the past, along with others, in the following commit: fd2c30fa2311e783eecf3bf02bf3dcfbabc3968a
This patch, just removes the "r->header_sent = 1". After that modification
the following regression tests started to work again:

from: action/00-disruptive-actions.t
   3) action - pass in phase:3
   4) action - pass in phase:4
  11) action - deny in phase:3
  12) action - deny in phase:4
  19) action - redirect in phase:3 (get)
  20) action - redirect in phase:4 (get)
  23) action - proxy in phase:3 (get)
  24) action - proxy in phase:4 (get)
from: config/10-response-directives.t
   2) config - SecResponseBodyAccess On
   6) config - SecResponseBodyLimit (greater)
   7) config - SecResponseBodyLimitAction Reject
tests: nginx: Allow POSTs in static files

By default Nginx does not allow POST in static files, which is very
used by the regression test. This is a ugly hack just to make possible
to gather some numbers. Better solution will arrive soon.
test: nginx: Adds missing files

This commit is just to circunvent a problem, there is no need to have
those files duplicated in our repository, that will be fixed soon.
nginx: Removes problematic performance improvement

In an attempt to boost the performance the headers were being checked in two
different situations, the first if SecResponseBodyAccess was Off and in a
second situation if SecResponseBodyAccess was set to On. This makes sense
however functionalities such as content injection demands the body even if
SecResponseBodyAccess was not enabled. This patch removes the first scenario,
leaving just the second one. After this modification the following regression
tests started to pass:

from: regression/action/10-append-prepend.t
  1) action - append content: passed
  2) action - prepend content: passed
nginx: Adds proper support to SecServerSignature

SecServerSignature was leading nginx to crash. It was trying to write over a
memory area that it was not allowed to. In order to fix that a new function was
created on the standalone api. This function is called
modsecIsServerSignatureAvailale. Whenever it returns data it means that the
function SecServerSignature was used by the user. Nginx module was also patched
to support this new function.
test: Adds support to handle different content in log depending on the version

Some functionalities are just enabled on Apache, not part of nginx or IIS. As
example we have the "proxy", currently just supported in Apache. This patches
add to our regression test suite the ability to expect different contents
based on the targert platform.
nginx: Warn about not workable 'proxy'

Proxy is not yet ready for nginx. Instead of give a generic error, this patch
adds a clean message explains that such functionality is not available on the
nginx port. This patch also modifies the test cases to reflect this changes.
test: Adds loading tests also to nginx.

It was trying to match "ModSecurity for Apache.* configured". This patch
makes it expect for "ModSecurity for nginx.* configured" while nginx
version is being used/tested.
test: nginx: Increses the timeout while reading the audit log.

Audit logs are taking too long to be written on the disk. One of the
consequence of that is to have tests that demands to read from audit
log failing. Increase the timeout makes it wait a little bit more for
the logs before gave up.
test: disabling: SecAuditLogType Concurrent

The test is making usage of a custom script, which is not functional in
in Nginx due to timing issues. Disabling it for now until we came up
with a solution that works for every port/version.
test: nginx: Adds missing environment variables.

Added the following environment variables:
 - DATA_DIR
 - TEMP_DIR
 - UPLOAD_DIR
These were needed by the testing framework, as the name explains.
test: removes uncessary ifDefine at 10-tfn-cache.t

IfDefines such as: <IfDefine MODSEC_2.5> are just compatible with Apache a
solution to check if some resource is available or not have to be developed
to be used in situations like that. This commit just removes the IfDefine.
nginx: Considering modsec state before apply any rules

For some reason the state of modsec (enable, disable or detecting only) was not
being checked under certain circumstances. For instance, while reading the
body. This was leading ModSecurity to fail and consequently nginx. This patch
added the to standalone implementation mechanism to verify the state that is now
verified under the nginx module.
test: nginx: Speeds up regression test in nginx.

Instead of use `sleep` it nows parser the nginx logs to figure out
whenever it start or stop. Audit log timeout was reduced to 8 seconds.
test: nginx: Points the !# to envoriment.

Instead of using a hardcoded path to Perl, using what is provided by the
environment. Avoiding problems with MacOS, where two different
versions of Perl are expected. One provided by the system and other
by MacOS ports.
test: nginx: Adds timeout while listening for a socket.