Quantcast
Channel: Nginx Forum
Viewing all 53287 articles
Browse latest View live

kevent() reported about an closed connection error

$
0
0
Hi,
we are using FreeBSD, nginx, php-fpm in our server for php application. Sometimes "kevent() reported about an closed connection (54: Connection reset by peer) while reading response header from upstream..." occured in log file and i get the "502 Bad Gateway" error. Simple php-fpm restart solves the problem.
Any solution?

Stale Blocking in Proxy Cache

$
0
0
Hello everyone, I'm in big trouble. I'm using nginx to do a proxy cache and enabled the directives: proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; proxy_cache_lock on; proxy_cache_background_update on; When the cache expires, the contents of the stale are passed but at the same time the request is blocked until the contents update. The other requests come back with stale - updatating. But this request that hangs is giving me a lot of headache, how to solve this?

Re: nginx undocumented directives

$
0
0
Hi Gena,

On Thu, Dec 28, 2017 at 12:42:25PM +0200, Gena Makhomed wrote:
> Hello, All!
>
> Scanning nginx sources and nginx documentation
> I found some directives, which present in nginx sources
> but absent in nginx documentation:

Internally, we have a document that explains why certain directives
are undocumented.

> acceptex_read
> iocp_threads
> post_acceptex
+ use iocp

These are undocumented b/c ngx_iocp_module is non-functional.

> devpoll_changes
> devpoll_events
> epoll_events
> eventport_events
> kqueue_changes
> kqueue_events
> gzip_hash
> gzip_no_buffer
> gzip_window
> postpone_gzipping
> http2_pool_size
> http2_streams_index_size

These are undocumented b/c we consider them "excessive configuraion".

> ssi_ignore_recycled_buffers

This used to be a hack for one big company, but isn't suitable for
general consumption.

> uwsgi_string

This is undocumented with the following notes: "no working examples,
no eval in recent uWSGI). Sorry, but I don't remember what exactly
this means. :)

> degradation
> degrade

This module needs more work.

> post_action

You already know the answer.

> smtp_client_buffer
> smtp_greeting_delay

There are no notes of why these aren't documented.

> post_action is known dangerous directive, it undocumented
> by purpose and in vim syntax file it marked accordingly:
>
> syn keyword ngxDirectiveError contained post_action
>
> But what about all rest undocumented directives, they are undocumented
> by purpose or through inadvertence, and may be in the near future
> all it (except post_action directive) will be documented?
>
> And second question: how they are should be marked in nginx syntax file,
> as normal nginx directives, or color mark it as undocumented directives?
>
> For example:
>
> syn keyword ngxDirectiveUndocumented contained acceptex_read
> syn keyword ngxDirectiveUndocumented contained degradation
> ...
> syn keyword ngxDirectiveUndocumented contained uwsgi_string
>
> hi link ngxDirectiveUndocumented Constant


_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel

Re: nginx undocumented directives

$
0
0
Hello!

On Thu, Dec 28, 2017 at 03:25:33PM +0300, Ruslan Ermilov wrote:

[...]

> > smtp_client_buffer
> > smtp_greeting_delay
>
> There are no notes of why these aren't documented.

I guess the reason is that mail documentation is mostly
contributed, and was never seriously considered by the
documentation project.

The smtp_client_buffer directive is identical to
imap_client_buffer, but for the smtp module.

The smtp_greeting_delay directive allows introducing an artificial
delay before sending an SMTP greeting, and rejecting clients who
fail to wait for a greeting before sending commands.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel

NGINX and RFC7540 (http2) violation

$
0
0
Hi guys,

I was playing around with nginx and haproxy recently to decide whether to go for nginx or haproxy in a specific environment.
One of the requirements was http2 support which both pieces of software support (with nginx having supported it for a lot longer than haproxy).

However, one thing I saw, is that according to the http2 specification section 8.1.2.2 (https://tools.ietf.org/html/rfc7540#section-8.1.2.2 ), HTTP2 does not use the Connection header field to indicate connection-specific headers in the protocol.

If a client sends a Connection: keep-alive the client effectively violates the specification which surely should not happen, but in case the client actually would send the Connection header the server MUST treat the messages containing the connection header as malformed.

I saw that this is not the case for nginx in any way, which causes it to not follow the actual specification.

Can I ask why it was decided to implement it to simply “ignore” the fact that a client might violate the spec? And is there any plans to make nginx compliant with the current http2 specification?

I’ve found that both Firefox and Safari violates this very specific section, and they’re violated because servers implementing the http2 specification allowed them to do so, effectively causing the specification not to be followed.

Thanks in advance.

Best Regards,
Lucas Rolff
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

DENY ALL ONLY ACCEPT SOME IP

$
0
0
Hello,
If it is possible to add some on default.conf that i can deny all from my page and only allow some IP?

Here is my default.conf but I dont know how I need to do...

server {
set $rootpath "/var/www/ipmp";
root $rootpath;
listen 80;

if ($request_uri ~ (/).*) {
rewrite ^ https://$host$request_uri? permanent;
}
if ($request_uri ~ (/mobile/).+) {
rewrite ^ https://$host$request_uri? permanent;
}
if ($request_uri ~ (/interactive/).*) {
rewrite ^ https://$host$request_uri? permanent;
}

include /etc/nginx/part.d/*.part;
}
server {
set $rootpath "/var/www/ipmp";
root $rootpath;
listen 443 ssl;
keepalive_timeout 70;

server_name $host;
ssl_certificate /ha_shared/ipmp/config/certificates/cert.csr;
ssl_certificate_key /ha_shared/ipmp/config/certificates/cert.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;

include /etc/nginx/part.d/*.part;
include /etc/nginx/part.d/onlyssl/*.part;
}

Where I need add that deny all? That is my root path: /var/www/ipmp . Hope some can help.

Re: NGINX and RFC7540 (http2) violation

$
0
0
On Thursday, 28 December 2017 22:16:29 MSK Lucas Rolff wrote:
> Hi guys,
>
> I was playing around with nginx and haproxy recently to decide whether to go for nginx or haproxy in a specific environment.
> One of the requirements was http2 support which both pieces of software support (with nginx having supported it for a lot longer than haproxy).
>
> However, one thing I saw, is that according to the http2 specification section 8.1.2.2 (https://tools.ietf.org/html/rfc7540#section-8.1.2.2 ), HTTP2 does not use the Connection header field to indicate connection-specific headers in the protocol.
>
> If a client sends a Connection: keep-alive the client effectively violates the specification which surely should not happen, but in case the client actually would send the Connection header the server MUST treat the messages containing the connection header as malformed.
>
> I saw that this is not the case for nginx in any way, which causes it to not follow the actual specification.
>
> Can I ask why it was decided to implement it to simply “ignore” the fact that a client might violate the spec? And is there any plans to make nginx compliant with the current http2 specification?
>
> I’ve found that both Firefox and Safari violates this very specific section, and they’re violated because servers implementing the http2 specification allowed them to do so, effectively causing the specification not to be followed.
>
> Thanks in advance.
>


There is a theory in the specification and there is a practise in
the real world.

Strictly following every aspect of a specification is intresting
from academical point of view, but nginx is made for the real world,
where it's used by hundreds of millions of websites and therefor has
to deal with many different clients and protocol implementations.

See: https://news.netcraft.com/archives/2017/12/26/december-2017-web-server-survey.html

These implementations may contain various bugs, some clients is
impossible to fix (some are unmaintainable hardware boxes or
Android phones that already reached EOL, for example).

One of the most important aspects of a server with such scale is
interoperability. It has to reliably work with any clients in every
environment. If it doesn't, website owners will loose audience, will
loose money, will blame us for that and eventually switch to something
else.

For that purpose sometimes we even have to make ugly hacks in nginx.
See for example: http://hg.nginx.org/nginx/rev/8df664ebe037

We immediately started receiving bug reports about this problem and
it took about a year for Chrome developers to release the fix.
And more time is needed for everybody to upgrade on a fixed version.

You can't force someone to buy a new phone, update or fix their
software just because of the idea of full compliance with a
protocol specification. That doesn't work this way.

Moreover, some aspects of specifications are just impossible to
follow without security or perfomance risks, or without turning
your code into unmaitanable mess.

A fully compliant implementation is usually something that doesn't
exist or just are not used.

In my personal opinion, the HTTP/2 specification (and the protocol
itself) is a bad example. Some aspects of the protocol are pure
overengineering, some of them are ugly hacks, some of them are just
complexity without any benefits, and some of them are vectors of DoS
attack.

I also suggest to read an article written by the author of Varnish:
https://queue.acm.org/detail.cfm?id=2716278

wbr, Valentin V. Bartenev

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

MAP location in conf file

$
0
0
Presently I'm putting maps in the server location. Can they be put in
the very top to make them work for all servers? If not, I can just make
the maps into include files and insert as needed, but maybe making the
map global is more efficient.

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

Re: MAP location in conf file

$
0
0
check docs:
http://nginx.org/en/docs/http/ngx_http_map_module.html

every directive description has a “Context” field, where you may find
in which configuration context you can put the directive.

regarding your questions, yes, you actually have to put it on the very top - in ‘http'
context.

br,
Aziz.





> On 29 Dec 2017, at 04:06, lists@lazygranch.com wrote:
>
> Presently I'm putting maps in the server location. Can they be put in
> the very top to make them work for all servers? If not, I can just make
> the maps into include files and insert as needed, but maybe making the
> map global is more efficient.
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

nginx using openssl chil engine

$
0
0
anyone know how to setup nginx config for using an openssl chil engine?

I have the following added as directives

main context :

ssl_engine chil;

in the server context I reference to a preloaded private key as

ssl_certificate_key engine:chil:prikeyid;

when I run "nginx -t" I get

nginx: [emrg] ENGINE_load_private_key (“prikeyid”) failed (SSL: error: 26096075:engine routines:ENGINE_load_private_key:not initialised)

What am I missing? or what do I need to check ?

Thank you
Jan _______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

root path custumized

$
0
0
Hello, I have configured my DNS CNAME: * .mydomain.com

Is this possible with nginx?

If the url does not have a sub domain use this root: /var/www/mydomain.com
If the url has www redirect to without www (that I already did)
If the url has the subdomain system (system.mydomain.com) use this root: /var/www/system
If the url has any other subdomain (company.mydomain.com or ong.mydomain.com) use this root: /var/www/companies

That's possible?

Thank you

unit-0.3 beta release

$
0
0
Hello,

I'm glad to announce that a new beta version of NGINX Unit has been released.

Changes with Unit 0.3 28 Dec 2017

*) Change: the Go package name changed to "nginx/unit".

*) Change: in the "limits.timeout" application option: application start
time and time in queue now are not accounted.

*) Feature: the "limits.requests" application option.

*) Feature: application request processing latency optimization.

*) Feature: HTTP keep-alive connections support.

*) Feature: the "home" Python virtual environment configuration option.

*) Feature: Python atexit hook support.

*) Feature: various Go package improvements.

*) Bugfix: various crashes fixed.

With this release we have started to build more Linux packages:

- https://unit.nginx.org/installation/#precompiled-packages

Also, here is a new blog post about some of our plans for the near future:

- https://www.nginx.com/blog/nginx-unit-progress-and-next-steps/

Happy New Year and best wishes from all of the Unit team.
Stay tuned.

wbr, Valentin V. Bartenev

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

unit-0.3 beta

$
0
0
Привет,

Рад сообщить о выпуске новой бета-версии NGINX Unit.

Изменения в Unit 0.3 28 Dec 2017

*) Изменение: пакет Go переименован в "nginx/unit".

*) Изменение: параметр "limits.timeout" теперь не учитывает времени старта
приложения и ожидания в очереди.

*) Добавление: параметр "limits.requests".

*) Добавление: оптимизация задержек в обработке запросов приложениями.

*) Добавление: поддержка HTTP keep-alive.

*) Добавление: параметр "home" для поддержки виртуальных окружений в Python.

*) Добавление: поддержка atexit в Python.

*) Добавление: различные улучшения в пакете Go.

*) Исправление: ряда ошибок, приводивших к segmentation fault.

Начиная с данной версии мы собираем пакеты для бо́льшего числа Linux систем:

- https://unit.nginx.org/installation/#precompiled-packages

Также в блоге появилась статья о некоторых наших ближайших планах:

- https://www.nginx.com/blog/nginx-unit-progress-and-next-steps/

Следите за обновлениями и, конечно же, всех с наступающим Новым Годом!

--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: unit-0.2 beta release

$
0
0
On Saturday, 16 December 2017 16:05:22 MSK Валентин Бартенев wrote:
> On Friday, 15 December 2017 21:53:57 MSK Иван wrote:
> > Прекрасная новость!
> >
> > А пакеты для debian9? А когда планируется релиз?
> >
> [..]
>
> Пакеты для Debian надеюсь сделаем до конца года.
> Релиз запланирован на второй квартал 2018.
>

Как и обещал, пакеты для Debian:
https://unit.nginx.org/installation/#debian-packages

--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Error response body not sent if upload is incomplete

$
0
0
This happens using the ngx_http_uwsgi_module, but it seems this might be more generic (i.e. also affects at least upstream servers).

Here's what happens:
* I send a HTTP/1.1 POST request with a Content-Type: multipart/form-data; header and a ~600kb file
* Nginx receives the first part of the request and passes it to a uwsgi app
* The uwsgi app determines that a 403 response along with a JSON body should be returned
* Nginx sends the 403 response to the client, but only containing the headers (not the JSON body)

However, if I do everything the same way, but the uploaded file is tiny (e.g. 1 byte), I do get the error response body as expected. Non-error responses also work fine.

It seems that nginx for some reason decides to ignore the response body (but still sends the headers) if the payload hasn't finished uploading.

This looks like an inconsistent behaviour (or even a bug), but correct me know if there is something I misunderstood.

Please find curl outputs and links to other users complaining about a similar thing below.


Here's curl verbose output when uploading a bigger file:
$ curl -v -F 'content=@large_file' http://0.0.0.0:5000/
* Trying 0.0.0.0...
* TCP_NODELAY set
* Connected to 0.0.0.0 (127.0.0.1) port 5000 (#0)
> POST / HTTP/1.1
> Host: 0.0.0.0:5000
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Length: 654430
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=------------------------6404e93291dc3c9f
>
< HTTP/1.1 100 Continue
< HTTP/1.1 403 FORBIDDEN
< Server: nginx/1.9.11
< Date: Fri, 29 Dec 2017 19:41:57 GMT
< Content-Type: application/json
< Content-Length: 54
< Connection: keep-alive
* HTTP error before end of send, stop sending
<
* transfer closed with 54 bytes remaining to read
* Closing connection 0
curl: (18) transfer closed with 54 bytes remaining to read

And this is curl output with the smaller fine (this is what I would expect independently of the payload size):
$ curl -v -F 'content=@tiny_file' http://0.0.0.0:5000/
* Trying 0.0.0.0...
* TCP_NODELAY set
* Connected to 0.0.0.0 (127.0.0.1) port 5000 (#0)
> POST / HTTP/1.1
> Host: 0.0.0.0:5000
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Length: 205
> Expect: 100-continue
> Content-Type: multipart/form-data; boundary=------------------------8cc5b005486613a4
>
< HTTP/1.1 100 Continue
< HTTP/1.1 403 FORBIDDEN
< Server: nginx/1.9.11
< Date: Fri, 29 Dec 2017 20:12:41 GMT
< Content-Type: application/json
< Content-Length: 54
< Connection: keep-alive
* HTTP error before end of send, stop sending
<
* Closing connection 0
{"error": {"message": "Invalid key", "code": 403}}


Other users reporting similar behaviour:
https://stackoverflow.com/questions/32208360/return-a-body-through-nginx-when-theres-an-error-mid-post
https://stackoverflow.com/questions/34771225/nginx-http-error-before-end-of-send

Re: Error response body not sent if upload is incomplete

$
0
0
On Friday, 29 December 2017 23:23:07 MSK naktinis wrote:
> This happens using the ngx_http_uwsgi_module, but it seems this might be
> more generic (i.e. also affects at least upstream servers).
>
> Here's what happens:
> * I send a HTTP/1.1 POST request with a Content-Type: multipart/form-data;
> header and a ~600kb file
> * Nginx receives the first part of the request and passes it to a uwsgi
> app
> * The uwsgi app determines that a 403 response along with a JSON body
> should be returned
> * Nginx sends the 403 response to the client, but only containing the
> headers (not the JSON body)
>
> However, if I do everything the same way, but the uploaded file is tiny
> (e.g. 1 byte), I do get the error response body as expected. Non-error
> responses also work fine.
>
> It seems that nginx for some reason decides to ignore the response body (but
> still sends the headers) if the payload hasn't finished uploading.
>
> This looks like an inconsistent behaviour (or even a bug), but correct me
> know if there is something I misunderstood.
>
> Please find curl outputs and links to other users complaining about a
> similar thing below.
[..]

What's in the error log?

The error log from one of your links suggests, that the problme in
uwsgi server, not in nginx:

2015/08/25 15:28:49 [error] 10#0: *103 readv() failed (104: Connection reset by peer) while reading upstream

wbr, Valentin V. Bartenev

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx

[nginx] Version bump.

$
0
0
details: http://hg.nginx.org/nginx/rev/1fd1bbd18ebd
branches:
changeset: 7184:1fd1bbd18ebd
user: Maxim Dounin <mdounin@mdounin.ru>
date: Sat Dec 30 00:15:07 2017 +0300
description:
Version bump.

diffstat:

src/core/nginx.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diffs (14 lines):

diff --git a/src/core/nginx.h b/src/core/nginx.h
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -9,8 +9,8 @@
#define _NGINX_H_INCLUDED_


-#define nginx_version 1013008
-#define NGINX_VERSION "1.13.8"
+#define nginx_version 1013009
+#define NGINX_VERSION "1.13.9"
#define NGINX_VER "nginx/" NGINX_VERSION

#ifdef NGX_BUILD
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel

[nginx] Contrib: vim syntax, update 3rd party module directives.

$
0
0
details: http://hg.nginx.org/nginx/rev/c9a7f4e11d3e
branches:
changeset: 7185:c9a7f4e11d3e
user: Gena Makhomed <gmm@csdoc.com>
date: Thu Dec 28 11:49:44 2017 +0200
description:
Contrib: vim syntax, update 3rd party module directives.

3rd party modules list synchronized with FreeBSD nginx-devel port.

diffstat:

contrib/vim/syntax/nginx.vim | 2543 +++++++++++++++++++++--------------------
1 files changed, 1301 insertions(+), 1242 deletions(-)

diffs (truncated from 2798 to 1000 lines):

diff --git a/contrib/vim/syntax/nginx.vim b/contrib/vim/syntax/nginx.vim
--- a/contrib/vim/syntax/nginx.vim
+++ b/contrib/vim/syntax/nginx.vim
@@ -37,7 +37,7 @@ syn cluster ngxTopLevel
syn cluster ngxDirectives
\ contains=ngxDirective,ngxDirectiveBlock,ngxDirectiveImportant
\ add=ngxDirectiveControl,ngxDirectiveError,ngxDirectiveDeprecated
- \ add=ngxDirectiveThirdParty
+ \ add=ngxDirectiveThirdParty,ngxDirectiveThirdPartyDeprecated
syn cluster ngxParams
\ contains=ngxParam,ngxString,ngxParamComment,ngxSemicolon,ngxBlock

@@ -683,529 +683,618 @@ syn keyword ngxDirective contained xslt_
syn keyword ngxDirective contained xslt_types
syn keyword ngxDirective contained zone

-" 3rd party module list:
-" https://www.nginx.com/resources/wiki/modules/
+" 3rd party modules list taken from
+" https://github.com/freebsd/freebsd-ports/blob/master/www/nginx-devel/Makefile
+" -----------------------------------------------------------------------------

-" Accept Language Module https://www.nginx.com/resources/wiki/modules/accept_language/
-" Parses the Accept-Language header and gives the most suitable locale from a list of supported locales.
+" Accept Language
+" https://github.com/giom/nginx_accept_language_module
syn keyword ngxDirectiveThirdParty contained set_from_accept_language

-" Access Key Module (DEPRECATED) http://wiki.nginx.org/NginxHttpAccessKeyModule
-" Denies access unless the request URL contains an access key.
-syn keyword ngxDirectiveDeprecated contained accesskey
-syn keyword ngxDirectiveDeprecated contained accesskey_arg
-syn keyword ngxDirectiveDeprecated contained accesskey_hashmethod
-syn keyword ngxDirectiveDeprecated contained accesskey_signature
+" Digest Authentication
+" https://github.com/atomx/nginx-http-auth-digest
+syn keyword ngxDirectiveThirdParty contained auth_digest
+syn keyword ngxDirectiveThirdParty contained auth_digest_drop_time
+syn keyword ngxDirectiveThirdParty contained auth_digest_evasion_time
+syn keyword ngxDirectiveThirdParty contained auth_digest_expires
+syn keyword ngxDirectiveThirdParty contained auth_digest_maxtries
+syn keyword ngxDirectiveThirdParty contained auth_digest_replays
+syn keyword ngxDirectiveThirdParty contained auth_digest_shm_size
+syn keyword ngxDirectiveThirdParty contained auth_digest_timeout
+syn keyword ngxDirectiveThirdParty contained auth_digest_user_file
+
+" SPNEGO Authentication
+" https://github.com/stnoonan/spnego-http-auth-nginx-module
+syn keyword ngxDirectiveThirdParty contained auth_gss
+syn keyword ngxDirectiveThirdParty contained auth_gss_allow_basic_fallback
+syn keyword ngxDirectiveThirdParty contained auth_gss_authorized_principal
+syn keyword ngxDirectiveThirdParty contained auth_gss_force_realm
+syn keyword ngxDirectiveThirdParty contained auth_gss_format_full
+syn keyword ngxDirectiveThirdParty contained auth_gss_keytab
+syn keyword ngxDirectiveThirdParty contained auth_gss_realm
+syn keyword ngxDirectiveThirdParty contained auth_gss_service_name
+
+" LDAP Authentication
+" https://github.com/kvspb/nginx-auth-ldap
+syn keyword ngxDirectiveThirdParty contained auth_ldap
+syn keyword ngxDirectiveThirdParty contained auth_ldap_cache_enabled
+syn keyword ngxDirectiveThirdParty contained auth_ldap_cache_expiration_time
+syn keyword ngxDirectiveThirdParty contained auth_ldap_cache_size
+syn keyword ngxDirectiveThirdParty contained auth_ldap_servers
+syn keyword ngxDirectiveThirdParty contained auth_ldap_servers_size
+syn keyword ngxDirectiveThirdParty contained ldap_server
+
+" PAM Authentication
+" https://github.com/sto/ngx_http_auth_pam_module
+syn keyword ngxDirectiveThirdParty contained auth_pam
+syn keyword ngxDirectiveThirdParty contained auth_pam_service_name
+syn keyword ngxDirectiveThirdParty contained auth_pam_set_pam_env

-" Asynchronous FastCGI Module https://github.com/rsms/afcgi
-" Primarily a modified version of the Nginx FastCGI module which implements multiplexing of connections, allowing a single FastCGI server to handle many concurrent requests.
-" syn keyword ngxDirectiveThirdParty contained fastcgi_bind
-" syn keyword ngxDirectiveThirdParty contained fastcgi_buffer_size
-" syn keyword ngxDirectiveThirdParty contained fastcgi_buffers
-" syn keyword ngxDirectiveThirdParty contained fastcgi_busy_buffers_size
-" syn keyword ngxDirectiveThirdParty contained fastcgi_cache
-" syn keyword ngxDirectiveThirdParty contained fastcgi_cache_key
-" syn keyword ngxDirectiveThirdParty contained fastcgi_cache_methods
-" syn keyword ngxDirectiveThirdParty contained fastcgi_cache_min_uses
-" syn keyword ngxDirectiveThirdParty contained fastcgi_cache_path
-" syn keyword ngxDirectiveThirdParty contained fastcgi_cache_use_stale
-" syn keyword ngxDirectiveThirdParty contained fastcgi_cache_valid
-" syn keyword ngxDirectiveThirdParty contained fastcgi_catch_stderr
-" syn keyword ngxDirectiveThirdParty contained fastcgi_connect_timeout
-" syn keyword ngxDirectiveThirdParty contained fastcgi_hide_header
-" syn keyword ngxDirectiveThirdParty contained fastcgi_ignore_client_abort
-" syn keyword ngxDirectiveThirdParty contained fastcgi_ignore_headers
-" syn keyword ngxDirectiveThirdParty contained fastcgi_index
-" syn keyword ngxDirectiveThirdParty contained fastcgi_intercept_errors
-" syn keyword ngxDirectiveThirdParty contained fastcgi_max_temp_file_size
-" syn keyword ngxDirectiveThirdParty contained fastcgi_next_upstream
-" syn keyword ngxDirectiveThirdParty contained fastcgi_param
-" syn keyword ngxDirectiveThirdParty contained fastcgi_pass
-" syn keyword ngxDirectiveThirdParty contained fastcgi_pass_header
-" syn keyword ngxDirectiveThirdParty contained fastcgi_pass_request_body
-" syn keyword ngxDirectiveThirdParty contained fastcgi_pass_request_headers
-" syn keyword ngxDirectiveThirdParty contained fastcgi_read_timeout
-" syn keyword ngxDirectiveThirdParty contained fastcgi_send_lowat
-" syn keyword ngxDirectiveThirdParty contained fastcgi_send_timeout
-" syn keyword ngxDirectiveThirdParty contained fastcgi_split_path_info
-" syn keyword ngxDirectiveThirdParty contained fastcgi_store
-" syn keyword ngxDirectiveThirdParty contained fastcgi_store_access
-" syn keyword ngxDirectiveThirdParty contained fastcgi_temp_file_write_size
-" syn keyword ngxDirectiveThirdParty contained fastcgi_temp_path
-syn keyword ngxDirectiveDeprecated contained fastcgi_upstream_fail_timeout
-syn keyword ngxDirectiveDeprecated contained fastcgi_upstream_max_fails
+" AJP protocol proxy
+" https://github.com/yaoweibin/nginx_ajp_module
+syn keyword ngxDirectiveThirdParty contained ajp_buffer_size
+syn keyword ngxDirectiveThirdParty contained ajp_buffers
+syn keyword ngxDirectiveThirdParty contained ajp_busy_buffers_size
+syn keyword ngxDirectiveThirdParty contained ajp_cache
+syn keyword ngxDirectiveThirdParty contained ajp_cache_key
+syn keyword ngxDirectiveThirdParty contained ajp_cache_lock
+syn keyword ngxDirectiveThirdParty contained ajp_cache_lock_timeout
+syn keyword ngxDirectiveThirdParty contained ajp_cache_methods
+syn keyword ngxDirectiveThirdParty contained ajp_cache_min_uses
+syn keyword ngxDirectiveThirdParty contained ajp_cache_path
+syn keyword ngxDirectiveThirdParty contained ajp_cache_use_stale
+syn keyword ngxDirectiveThirdParty contained ajp_cache_valid
+syn keyword ngxDirectiveThirdParty contained ajp_connect_timeout
+syn keyword ngxDirectiveThirdParty contained ajp_header_packet_buffer_size
+syn keyword ngxDirectiveThirdParty contained ajp_hide_header
+syn keyword ngxDirectiveThirdParty contained ajp_ignore_client_abort
+syn keyword ngxDirectiveThirdParty contained ajp_ignore_headers
+syn keyword ngxDirectiveThirdParty contained ajp_intercept_errors
+syn keyword ngxDirectiveThirdParty contained ajp_keep_conn
+syn keyword ngxDirectiveThirdParty contained ajp_max_data_packet_size
+syn keyword ngxDirectiveThirdParty contained ajp_max_temp_file_size
+syn keyword ngxDirectiveThirdParty contained ajp_next_upstream
+syn keyword ngxDirectiveThirdParty contained ajp_pass
+syn keyword ngxDirectiveThirdParty contained ajp_pass_header
+syn keyword ngxDirectiveThirdParty contained ajp_pass_request_body
+syn keyword ngxDirectiveThirdParty contained ajp_pass_request_headers
+syn keyword ngxDirectiveThirdParty contained ajp_read_timeout
+syn keyword ngxDirectiveThirdParty contained ajp_send_lowat
+syn keyword ngxDirectiveThirdParty contained ajp_send_timeout
+syn keyword ngxDirectiveThirdParty contained ajp_store
+syn keyword ngxDirectiveThirdParty contained ajp_store_access
+syn keyword ngxDirectiveThirdParty contained ajp_temp_file_write_size
+syn keyword ngxDirectiveThirdParty contained ajp_temp_path
+syn keyword ngxDirectiveThirdParty contained ajp_upstream_fail_timeout
+syn keyword ngxDirectiveThirdParty contained ajp_upstream_max_fails

-" Akamai G2O Module https://github.com/kaltura/nginx_mod_akamai_g2o
-" Nginx Module for Authenticating Akamai G2O requests
-syn keyword ngxDirectiveThirdParty contained g2o
-syn keyword ngxDirectiveThirdParty contained g2o_nonce
-syn keyword ngxDirectiveThirdParty contained g2o_key
-
-" Lua Module https://github.com/alacner/nginx_lua_module
-" You can be very simple to execute lua code for nginx
-syn keyword ngxDirectiveThirdParty contained lua_file
-
-" Array Variable Module https://github.com/openresty/array-var-nginx-module
-" Add support for array-typed variables to nginx config files
-syn keyword ngxDirectiveThirdParty contained array_split
-syn keyword ngxDirectiveThirdParty contained array_join
-syn keyword ngxDirectiveThirdParty contained array_map
-syn keyword ngxDirectiveThirdParty contained array_map_op
-
-" Nginx Audio Track for HTTP Live Streaming https://github.com/flavioribeiro/nginx-audio-track-for-hls-module
-" This nginx module generates audio track for hls streams on the fly.
-syn keyword ngxDirectiveThirdParty contained ngx_hls_audio_track
-syn keyword ngxDirectiveThirdParty contained ngx_hls_audio_track_rootpath
-syn keyword ngxDirectiveThirdParty contained ngx_hls_audio_track_output_format
-syn keyword ngxDirectiveThirdParty contained ngx_hls_audio_track_output_header
-
-" AWS Proxy Module https://github.com/anomalizer/ngx_aws_auth
-" Nginx module to proxy to authenticated AWS services
+" AWS proxy
+" https://github.com/anomalizer/ngx_aws_auth
syn keyword ngxDirectiveThirdParty contained aws_access_key
+syn keyword ngxDirectiveThirdParty contained aws_endpoint
syn keyword ngxDirectiveThirdParty contained aws_key_scope
-syn keyword ngxDirectiveThirdParty contained aws_signing_key
-syn keyword ngxDirectiveThirdParty contained aws_endpoint
syn keyword ngxDirectiveThirdParty contained aws_s3_bucket
syn keyword ngxDirectiveThirdParty contained aws_sign
-
-" Backtrace module https://github.com/alibaba/nginx-backtrace
-" A Nginx module to dump backtrace when a worker process exits abnormally
-syn keyword ngxDirectiveThirdParty contained backtrace_log
-syn keyword ngxDirectiveThirdParty contained backtrace_max_stack_size
-
-" Brotli Module https://github.com/google/ngx_brotli
-" Nginx module for Brotli compression
-syn keyword ngxDirectiveThirdParty contained brotli_static
-syn keyword ngxDirectiveThirdParty contained brotli
-syn keyword ngxDirectiveThirdParty contained brotli_types
-syn keyword ngxDirectiveThirdParty contained brotli_buffers
-syn keyword ngxDirectiveThirdParty contained brotli_comp_level
-syn keyword ngxDirectiveThirdParty contained brotli_window
-syn keyword ngxDirectiveThirdParty contained brotli_min_length
+syn keyword ngxDirectiveThirdParty contained aws_signing_key

-" Cache Purge Module https://github.com/FRiCKLE/ngx_cache_purge
-" Adds ability to purge content from FastCGI, proxy, SCGI and uWSGI caches.
-syn keyword ngxDirectiveThirdParty contained fastcgi_cache_purge
-syn keyword ngxDirectiveThirdParty contained proxy_cache_purge
-" syn keyword ngxDirectiveThirdParty contained scgi_cache_purge
-" syn keyword ngxDirectiveThirdParty contained uwsgi_cache_purge
-
-" Chunkin Module (DEPRECATED) http://wiki.nginx.org/NginxHttpChunkinModule
-" HTTP 1.1 chunked-encoding request body support for Nginx.
-syn keyword ngxDirectiveDeprecated contained chunkin
-syn keyword ngxDirectiveDeprecated contained chunkin_keepalive
-syn keyword ngxDirectiveDeprecated contained chunkin_max_chunks_per_buf
-syn keyword ngxDirectiveDeprecated contained chunkin_resume
-
-" Circle GIF Module https://github.com/evanmiller/nginx_circle_gif
-" Generates simple circle images with the colors and size specified in the URL.
-syn keyword ngxDirectiveThirdParty contained circle_gif
-syn keyword ngxDirectiveThirdParty contained circle_gif_max_radius
-syn keyword ngxDirectiveThirdParty contained circle_gif_min_radius
-syn keyword ngxDirectiveThirdParty contained circle_gif_step_radius
-
-" Nginx-Clojure Module http://nginx-clojure.github.io/index.html
-" Parses the Accept-Language header and gives the most suitable locale from a list of supported locales.
+" embedding Clojure or Java or Groovy programs
+" https://github.com/nginx-clojure/nginx-clojure
+syn keyword ngxDirectiveThirdParty contained access_handler_code
+syn keyword ngxDirectiveThirdParty contained access_handler_name
+syn keyword ngxDirectiveThirdParty contained access_handler_property
+syn keyword ngxDirectiveThirdParty contained access_handler_type
+syn keyword ngxDirectiveThirdParty contained always_read_body
+syn keyword ngxDirectiveThirdParty contained auto_upgrade_ws
+syn keyword ngxDirectiveThirdParty contained body_filter_code
+syn keyword ngxDirectiveThirdParty contained body_filter_name
+syn keyword ngxDirectiveThirdParty contained body_filter_property
+syn keyword ngxDirectiveThirdParty contained body_filter_type
+syn keyword ngxDirectiveThirdParty contained content_handler_code
+syn keyword ngxDirectiveThirdParty contained content_handler_name
+syn keyword ngxDirectiveThirdParty contained content_handler_property
+syn keyword ngxDirectiveThirdParty contained content_handler_type
+syn keyword ngxDirectiveThirdParty contained handler_code
+syn keyword ngxDirectiveThirdParty contained handler_name
+syn keyword ngxDirectiveThirdParty contained handler_type
+syn keyword ngxDirectiveThirdParty contained handlers_lazy_init
+syn keyword ngxDirectiveThirdParty contained header_filter_code
+syn keyword ngxDirectiveThirdParty contained header_filter_name
+syn keyword ngxDirectiveThirdParty contained header_filter_property
+syn keyword ngxDirectiveThirdParty contained header_filter_type
+syn keyword ngxDirectiveThirdParty contained jvm_classpath
+syn keyword ngxDirectiveThirdParty contained jvm_classpath_check
+syn keyword ngxDirectiveThirdParty contained jvm_exit_handler_code
+syn keyword ngxDirectiveThirdParty contained jvm_exit_handler_name
+syn keyword ngxDirectiveThirdParty contained jvm_handler_type
+syn keyword ngxDirectiveThirdParty contained jvm_init_handler_code
+syn keyword ngxDirectiveThirdParty contained jvm_init_handler_name
+syn keyword ngxDirectiveThirdParty contained jvm_options
syn keyword ngxDirectiveThirdParty contained jvm_path
syn keyword ngxDirectiveThirdParty contained jvm_var
-syn keyword ngxDirectiveThirdParty contained jvm_classpath
-syn keyword ngxDirectiveThirdParty contained jvm_classpath_check
syn keyword ngxDirectiveThirdParty contained jvm_workers
-syn keyword ngxDirectiveThirdParty contained jvm_options
-syn keyword ngxDirectiveThirdParty contained jvm_handler_type
-syn keyword ngxDirectiveThirdParty contained jvm_init_handler_name
-syn keyword ngxDirectiveThirdParty contained jvm_init_handler_code
-syn keyword ngxDirectiveThirdParty contained jvm_exit_handler_name
-syn keyword ngxDirectiveThirdParty contained jvm_exit_handler_code
-syn keyword ngxDirectiveThirdParty contained handlers_lazy_init
-syn keyword ngxDirectiveThirdParty contained auto_upgrade_ws
-syn keyword ngxDirectiveThirdParty contained content_handler_type
-syn keyword ngxDirectiveThirdParty contained content_handler_name
-syn keyword ngxDirectiveThirdParty contained content_handler_code
-syn keyword ngxDirectiveThirdParty contained rewrite_handler_type
+syn keyword ngxDirectiveThirdParty contained max_balanced_tcp_connections
+syn keyword ngxDirectiveThirdParty contained rewrite_handler_code
syn keyword ngxDirectiveThirdParty contained rewrite_handler_name
-syn keyword ngxDirectiveThirdParty contained rewrite_handler_code
-syn keyword ngxDirectiveThirdParty contained access_handler_type
-syn keyword ngxDirectiveThirdParty contained access_handler_name
-syn keyword ngxDirectiveThirdParty contained access_handler_code
-syn keyword ngxDirectiveThirdParty contained header_filter_type
-syn keyword ngxDirectiveThirdParty contained header_filter_name
-syn keyword ngxDirectiveThirdParty contained header_filter_code
-syn keyword ngxDirectiveThirdParty contained content_handler_property
syn keyword ngxDirectiveThirdParty contained rewrite_handler_property
-syn keyword ngxDirectiveThirdParty contained access_handler_property
-syn keyword ngxDirectiveThirdParty contained header_filter_property
-syn keyword ngxDirectiveThirdParty contained always_read_body
+syn keyword ngxDirectiveThirdParty contained rewrite_handler_type
syn keyword ngxDirectiveThirdParty contained shared_map
syn keyword ngxDirectiveThirdParty contained write_page_size

-" Upstream Consistent Hash https://www.nginx.com/resources/wiki/modules/consistent_hash/
-" A load balancer that uses an internal consistent hash ring to select the right backend node.
-syn keyword ngxDirectiveThirdParty contained consistent_hash
-
-" Nginx Development Kit https://github.com/simpl/ngx_devel_kit
-" The NDK is an Nginx module that is designed to extend the core functionality of the excellent Nginx webserver in a way that can be used as a basis of other Nginx modules.
-" NDK_UPSTREAM_LIST
-" This submodule provides a directive that creates a list of upstreams, with optional weighting. This list can then be used by other modules to hash over the upstreams however they choose.
-syn keyword ngxDirectiveThirdParty contained upstream_list
-
-" Drizzle Module https://www.nginx.com/resources/wiki/modules/drizzle/
-" Upstream module for talking to MySQL and Drizzle directly
-syn keyword ngxDirectiveThirdParty contained drizzle_server
-syn keyword ngxDirectiveThirdParty contained drizzle_keepalive
-syn keyword ngxDirectiveThirdParty contained drizzle_query
-syn keyword ngxDirectiveThirdParty contained drizzle_pass
-syn keyword ngxDirectiveThirdParty contained drizzle_connect_timeout
-syn keyword ngxDirectiveThirdParty contained drizzle_send_query_timeout
-syn keyword ngxDirectiveThirdParty contained drizzle_recv_cols_timeout
-syn keyword ngxDirectiveThirdParty contained drizzle_recv_rows_timeout
-syn keyword ngxDirectiveThirdParty contained drizzle_buffer_size
-syn keyword ngxDirectiveThirdParty contained drizzle_module_header
-syn keyword ngxDirectiveThirdParty contained drizzle_status
-
-" Dynamic ETags Module https://github.com/kali/nginx-dynamic-etags
-" Attempt at handling ETag / If-None-Match on proxied content.
-syn keyword ngxDirectiveThirdParty contained dynamic_etags
-
-" Echo Module https://www.nginx.com/resources/wiki/modules/echo/
-" Bringing the power of "echo", "sleep", "time" and more to Nginx's config file
-syn keyword ngxDirectiveThirdParty contained echo
-syn keyword ngxDirectiveThirdParty contained echo_duplicate
-syn keyword ngxDirectiveThirdParty contained echo_flush
-syn keyword ngxDirectiveThirdParty contained echo_sleep
-syn keyword ngxDirectiveThirdParty contained echo_blocking_sleep
-syn keyword ngxDirectiveThirdParty contained echo_reset_timer
-syn keyword ngxDirectiveThirdParty contained echo_read_request_body
-syn keyword ngxDirectiveThirdParty contained echo_location_async
-syn keyword ngxDirectiveThirdParty contained echo_location
-syn keyword ngxDirectiveThirdParty contained echo_subrequest_async
-syn keyword ngxDirectiveThirdParty contained echo_subrequest
-syn keyword ngxDirectiveThirdParty contained echo_foreach_split
-syn keyword ngxDirectiveThirdParty contained echo_end
-syn keyword ngxDirectiveThirdParty contained echo_request_body
-syn keyword ngxDirectiveThirdParty contained echo_exec
-syn keyword ngxDirectiveThirdParty contained echo_status
-syn keyword ngxDirectiveThirdParty contained echo_before_body
-syn keyword ngxDirectiveThirdParty contained echo_after_body
-
-" Encrypted Session Module https://github.com/openresty/encrypted-session-nginx-module
-" Encrypt and decrypt nginx variable values
-syn keyword ngxDirectiveThirdParty contained encrypted_session_key
-syn keyword ngxDirectiveThirdParty contained encrypted_session_iv
-syn keyword ngxDirectiveThirdParty contained encrypted_session_expires
-syn keyword ngxDirectiveThirdParty contained set_encrypt_session
-syn keyword ngxDirectiveThirdParty contained set_decrypt_session
+" Certificate Transparency
+" https://github.com/grahamedgecombe/nginx-ct
+syn keyword ngxDirectiveThirdParty contained ssl_ct
+syn keyword ngxDirectiveThirdParty contained ssl_ct_static_scts

-" Enhanced Memcached Module https://github.com/bpaquet/ngx_http_enhanced_memcached_module
-" This module is based on the standard Nginx Memcached module, with some additonal features
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_pass
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_hash_keys_with_md5
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_allow_put
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_allow_delete
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_stats
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_flush
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_flush_namespace
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_bind
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_connect_timeout
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_send_timeout
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_buffer_size
-syn keyword ngxDirectiveThirdParty contained enhanced_memcached_read_timeout
-
-" Events Module (DEPRECATED) http://docs.dutov.org/nginx_modules_events_en.html
-" Provides options for start/stop events.
-syn keyword ngxDirectiveDeprecated contained on_start
-syn keyword ngxDirectiveDeprecated contained on_stop
-
-" EY Balancer Module https://github.com/ezmobius/nginx-ey-balancer
-" Adds a request queue to Nginx that allows the limiting of concurrent requests passed to the upstream.
-syn keyword ngxDirectiveThirdParty contained max_connections
-syn keyword ngxDirectiveThirdParty contained max_connections_max_queue_length
-syn keyword ngxDirectiveThirdParty contained max_connections_queue_timeout
-
-" Upstream Fair Balancer https://www.nginx.com/resources/wiki/modules/fair_balancer/
-" Sends an incoming request to the least-busy backend server, rather than distributing requests round-robin.
-syn keyword ngxDirectiveThirdParty contained fair
-syn keyword ngxDirectiveThirdParty contained upstream_fair_shm_size
+" ngx_echo
+" https://github.com/openresty/echo-nginx-module
+syn keyword ngxDirectiveThirdParty contained echo_abort_parent
+syn keyword ngxDirectiveThirdParty contained echo_after_body
+syn keyword ngxDirectiveThirdParty contained echo_before_body
+syn keyword ngxDirectiveThirdParty contained echo_blocking_sleep
+syn keyword ngxDirectiveThirdParty contained echo_end
+syn keyword ngxDirectiveThirdParty contained echo_exec
+syn keyword ngxDirectiveThirdParty contained echo_flush
+syn keyword ngxDirectiveThirdParty contained echo_foreach_split
+syn keyword ngxDirectiveThirdParty contained echo_location
+syn keyword ngxDirectiveThirdParty contained echo_location_async
+syn keyword ngxDirectiveThirdParty contained echo_read_request_body
+syn keyword ngxDirectiveThirdParty contained echo_request_body
+syn keyword ngxDirectiveThirdParty contained echo_reset_timer
+syn keyword ngxDirectiveThirdParty contained echo_status
+syn keyword ngxDirectiveThirdParty contained echo_subrequest
+syn keyword ngxDirectiveThirdParty contained echo_subrequest_async

-" Fancy Indexes Module https://github.com/aperezdc/ngx-fancyindex
-" Like the built-in autoindex module, but fancier.
-syn keyword ngxDirectiveThirdParty contained fancyindex
-syn keyword ngxDirectiveThirdParty contained fancyindex_default_sort
-syn keyword ngxDirectiveThirdParty contained fancyindex_directories_first
-syn keyword ngxDirectiveThirdParty contained fancyindex_css_href
-syn keyword ngxDirectiveThirdParty contained fancyindex_exact_size
-syn keyword ngxDirectiveThirdParty contained fancyindex_name_length
-syn keyword ngxDirectiveThirdParty contained fancyindex_footer
-syn keyword ngxDirectiveThirdParty contained fancyindex_header
-syn keyword ngxDirectiveThirdParty contained fancyindex_show_path
-syn keyword ngxDirectiveThirdParty contained fancyindex_ignore
-syn keyword ngxDirectiveThirdParty contained fancyindex_hide_symlinks
-syn keyword ngxDirectiveThirdParty contained fancyindex_localtime
-syn keyword ngxDirectiveThirdParty contained fancyindex_time_format
+" FastDFS
+" https://github.com/happyfish100/fastdfs-nginx-module
+syn keyword ngxDirectiveThirdParty contained ngx_fastdfs_module

-" Form Auth Module https://github.com/veruu/ngx_form_auth
-" Provides authentication and authorization with credentials submitted via POST request
-syn keyword ngxDirectiveThirdParty contained form_auth
-syn keyword ngxDirectiveThirdParty contained form_auth_pam_service
-syn keyword ngxDirectiveThirdParty contained form_auth_login
-syn keyword ngxDirectiveThirdParty contained form_auth_password
-syn keyword ngxDirectiveThirdParty contained form_auth_remote_user
-
-" Form Input Module https://github.com/calio/form-input-nginx-module
-" Reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded" and parses the arguments into nginx variables.
-syn keyword ngxDirectiveThirdParty contained set_form_input
-syn keyword ngxDirectiveThirdParty contained set_form_input_multi
-
-" GeoIP Module (DEPRECATED) http://wiki.nginx.org/NginxHttp3rdPartyGeoIPModule
-" Country code lookups via the MaxMind GeoIP API.
-syn keyword ngxDirectiveDeprecated contained geoip_country_file
-
-" GeoIP 2 Module https://github.com/leev/ngx_http_geoip2_module
-" Creates variables with values from the maxmind geoip2 databases based on the client IP
-syn keyword ngxDirectiveThirdParty contained geoip2
-
-" GridFS Module https://github.com/mdirolf/nginx-gridfs
-" Nginx module for serving files from MongoDB's GridFS
-syn keyword ngxDirectiveThirdParty contained gridfs
-
-" Headers More Module https://github.com/openresty/headers-more-nginx-module
-" Set and clear input and output headers...more than "add"!
+" ngx_headers_more
+" https://github.com/openresty/headers-more-nginx-module
syn keyword ngxDirectiveThirdParty contained more_clear_headers
syn keyword ngxDirectiveThirdParty contained more_clear_input_headers
syn keyword ngxDirectiveThirdParty contained more_set_headers
syn keyword ngxDirectiveThirdParty contained more_set_input_headers

-" Health Checks Upstreams Module https://www.nginx.com/resources/wiki/modules/healthcheck/
-" Polls backends and if they respond with HTTP 200 + an optional request body, they are marked good. Otherwise, they are marked bad.
-syn keyword ngxDirectiveThirdParty contained healthcheck_enabled
-syn keyword ngxDirectiveThirdParty contained healthcheck_delay
-syn keyword ngxDirectiveThirdParty contained healthcheck_timeout
-syn keyword ngxDirectiveThirdParty contained healthcheck_failcount
-syn keyword ngxDirectiveThirdParty contained healthcheck_send
-syn keyword ngxDirectiveThirdParty contained healthcheck_expected
-syn keyword ngxDirectiveThirdParty contained healthcheck_buffer
-syn keyword ngxDirectiveThirdParty contained healthcheck_status
+" NGINX WebDAV missing commands support (PROPFIND & OPTIONS)
+" https://github.com/arut/nginx-dav-ext-module
+syn keyword ngxDirectiveThirdParty contained dav_ext_methods

-" HTTP Accounting Module https://github.com/Lax/ngx_http_accounting_module
-" Add traffic stat function to nginx. Useful for http accounting based on nginx configuration logic
-syn keyword ngxDirectiveThirdParty contained http_accounting
-syn keyword ngxDirectiveThirdParty contained http_accounting_log
-syn keyword ngxDirectiveThirdParty contained http_accounting_id
-syn keyword ngxDirectiveThirdParty contained http_accounting_interval
-syn keyword ngxDirectiveThirdParty contained http_accounting_perturb
-
-" Nginx Digest Authentication module https://github.com/atomx/nginx-http-auth-digest
-" Digest Authentication for Nginx
-syn keyword ngxDirectiveThirdParty contained auth_digest
-syn keyword ngxDirectiveThirdParty contained auth_digest_user_file
-syn keyword ngxDirectiveThirdParty contained auth_digest_timeout
-syn keyword ngxDirectiveThirdParty contained auth_digest_expires
-syn keyword ngxDirectiveThirdParty contained auth_digest_replays
-syn keyword ngxDirectiveThirdParty contained auth_digest_shm_size
+" ngx_eval
+" https://github.com/openresty/nginx-eval-module
+syn keyword ngxDirectiveThirdParty contained eval
+syn keyword ngxDirectiveThirdParty contained eval_buffer_size
+syn keyword ngxDirectiveThirdParty contained eval_escalate
+syn keyword ngxDirectiveThirdParty contained eval_override_content_type
+syn keyword ngxDirectiveThirdParty contained eval_subrequest_in_memory

-" Auth PAM Module https://github.com/sto/ngx_http_auth_pam_module
-" HTTP Basic Authentication using PAM.
-syn keyword ngxDirectiveThirdParty contained auth_pam
-syn keyword ngxDirectiveThirdParty contained auth_pam_service_name
-
-" HTTP Auth Request Module http://nginx.org/en/docs/http/ngx_http_auth_request_module.html
-" Implements client authorization based on the result of a subrequest
-" syn keyword ngxDirectiveThirdParty contained auth_request
-" syn keyword ngxDirectiveThirdParty contained auth_request_set
+" Fancy Index
+" https://github.com/aperezdc/ngx-fancyindex
+syn keyword ngxDirectiveThirdParty contained fancyindex
+syn keyword ngxDirectiveThirdParty contained fancyindex_css_href
+syn keyword ngxDirectiveThirdParty contained fancyindex_default_sort
+syn keyword ngxDirectiveThirdParty contained fancyindex_directories_first
+syn keyword ngxDirectiveThirdParty contained fancyindex_exact_size
+syn keyword ngxDirectiveThirdParty contained fancyindex_footer
+syn keyword ngxDirectiveThirdParty contained fancyindex_header
+syn keyword ngxDirectiveThirdParty contained fancyindex_hide_symlinks
+syn keyword ngxDirectiveThirdParty contained fancyindex_ignore
+syn keyword ngxDirectiveThirdParty contained fancyindex_localtime
+syn keyword ngxDirectiveThirdParty contained fancyindex_name_length
+syn keyword ngxDirectiveThirdParty contained fancyindex_show_path
+syn keyword ngxDirectiveThirdParty contained fancyindex_time_format

-" HTTP Concatenation module for Nginx https://github.com/alibaba/nginx-http-concat
-" A Nginx module for concatenating files in a given context: CSS and JS files usually
-syn keyword ngxDirectiveThirdParty contained concat
-syn keyword ngxDirectiveThirdParty contained concat_types
-syn keyword ngxDirectiveThirdParty contained concat_unique
-syn keyword ngxDirectiveThirdParty contained concat_max_files
-syn keyword ngxDirectiveThirdParty contained concat_delimiter
-syn keyword ngxDirectiveThirdParty contained concat_ignore_file_error
-
-" HTTP Dynamic Upstream Module https://github.com/yzprofile/ngx_http_dyups_module
-" Update upstreams' config by restful interface
-syn keyword ngxDirectiveThirdParty contained dyups_interface
-syn keyword ngxDirectiveThirdParty contained dyups_read_msg_timeout
-syn keyword ngxDirectiveThirdParty contained dyups_shm_zone_size
-syn keyword ngxDirectiveThirdParty contained dyups_upstream_conf
-syn keyword ngxDirectiveThirdParty contained dyups_trylock
-
-" HTTP Footer If Filter Module https://github.com/flygoast/ngx_http_footer_if_filter
-" The ngx_http_footer_if_filter_module is used to add given content to the end of the response according to the condition specified.
-syn keyword ngxDirectiveThirdParty contained footer_if
-
-" HTTP Footer Filter Module https://github.com/alibaba/nginx-http-footer-filter
-" This module implements a body filter that adds a given string to the page footer.
+" Footer filter
+" https://github.com/alibaba/nginx-http-footer-filter
syn keyword ngxDirectiveThirdParty contained footer
syn keyword ngxDirectiveThirdParty contained footer_types

-" HTTP Internal Redirect Module https://github.com/flygoast/ngx_http_internal_redirect
-" Make an internal redirect to the uri specified according to the condition specified.
-syn keyword ngxDirectiveThirdParty contained internal_redirect_if
-syn keyword ngxDirectiveThirdParty contained internal_redirect_if_no_postponed
+" ngx_http_geoip2_module
+" https://github.com/leev/ngx_http_geoip2_module
+syn keyword ngxDirectiveThirdParty contained geoip2
+syn keyword ngxDirectiveThirdParty contained geoip2_proxy
+syn keyword ngxDirectiveThirdParty contained geoip2_proxy_recursive
+
+" A version of the Nginx HTTP stub status module that outputs in JSON format
+" https://github.com/nginx-modules/nginx-json-status-module
+syn keyword ngxDirectiveThirdParty contained json_status
+syn keyword ngxDirectiveThirdParty contained json_status_type
+
+" MogileFS client for nginx
+" https://github.com/vkholodkov/nginx-mogilefs-module
+syn keyword ngxDirectiveThirdParty contained mogilefs_class
+syn keyword ngxDirectiveThirdParty contained mogilefs_connect_timeout
+syn keyword ngxDirectiveThirdParty contained mogilefs_domain
+syn keyword ngxDirectiveThirdParty contained mogilefs_methods
+syn keyword ngxDirectiveThirdParty contained mogilefs_noverify
+syn keyword ngxDirectiveThirdParty contained mogilefs_pass
+syn keyword ngxDirectiveThirdParty contained mogilefs_read_timeout
+syn keyword ngxDirectiveThirdParty contained mogilefs_send_timeout
+syn keyword ngxDirectiveThirdParty contained mogilefs_tracker
+
+" Ancient nginx plugin; probably not useful to anyone
+" https://github.com/kr/nginx-notice
+syn keyword ngxDirectiveThirdParty contained notice
+syn keyword ngxDirectiveThirdParty contained notice_type

-" HTTP JavaScript Module https://github.com/peter-leonov/ngx_http_js_module
-" Embedding SpiderMonkey. Nearly full port on Perl module.
-syn keyword ngxDirectiveThirdParty contained js
-syn keyword ngxDirectiveThirdParty contained js_filter
-syn keyword ngxDirectiveThirdParty contained js_filter_types
-syn keyword ngxDirectiveThirdParty contained js_load
-syn keyword ngxDirectiveThirdParty contained js_maxmem
-syn keyword ngxDirectiveThirdParty contained js_require
-syn keyword ngxDirectiveThirdParty contained js_set
-syn keyword ngxDirectiveThirdParty contained js_utf8
+" nchan
+" https://github.com/slact/nchan
+syn keyword ngxDirectiveThirdParty contained nchan_access_control_allow_origin
+syn keyword ngxDirectiveThirdParty contained nchan_authorize_request
+syn keyword ngxDirectiveThirdParty contained nchan_channel_event_string
+syn keyword ngxDirectiveThirdParty contained nchan_channel_events_channel_id
+syn keyword ngxDirectiveThirdParty contained nchan_channel_group
+syn keyword ngxDirectiveThirdParty contained nchan_channel_group_accounting
+syn keyword ngxDirectiveThirdParty contained nchan_channel_id
+syn keyword ngxDirectiveThirdParty contained nchan_channel_id_split_delimiter
+syn keyword ngxDirectiveThirdParty contained nchan_channel_timeout
+syn keyword ngxDirectiveThirdParty contained nchan_deflate_message_for_websocket
+syn keyword ngxDirectiveThirdParty contained nchan_eventsource_event
+syn keyword ngxDirectiveThirdParty contained nchan_group_location
+syn keyword ngxDirectiveThirdParty contained nchan_group_max_channels
+syn keyword ngxDirectiveThirdParty contained nchan_group_max_messages
+syn keyword ngxDirectiveThirdParty contained nchan_group_max_messages_disk
+syn keyword ngxDirectiveThirdParty contained nchan_group_max_messages_memory
+syn keyword ngxDirectiveThirdParty contained nchan_group_max_subscribers
+syn keyword ngxDirectiveThirdParty contained nchan_longpoll_multipart_response
+syn keyword ngxDirectiveThirdParty contained nchan_max_channel_id_length
+syn keyword ngxDirectiveThirdParty contained nchan_max_channel_subscribers
+syn keyword ngxDirectiveThirdParty contained nchan_max_reserved_memory
+syn keyword ngxDirectiveThirdParty contained nchan_message_buffer_length
+syn keyword ngxDirectiveThirdParty contained nchan_message_max_buffer_length
+syn keyword ngxDirectiveThirdParty contained nchan_message_temp_path
+syn keyword ngxDirectiveThirdParty contained nchan_message_timeout
+syn keyword ngxDirectiveThirdParty contained nchan_permessage_deflate_compression_level
+syn keyword ngxDirectiveThirdParty contained nchan_permessage_deflate_compression_memlevel
+syn keyword ngxDirectiveThirdParty contained nchan_permessage_deflate_compression_strategy
+syn keyword ngxDirectiveThirdParty contained nchan_permessage_deflate_compression_window
+syn keyword ngxDirectiveThirdParty contained nchan_pub_channel_id
+syn keyword ngxDirectiveThirdParty contained nchan_publisher
+syn keyword ngxDirectiveThirdParty contained nchan_publisher_channel_id
+syn keyword ngxDirectiveThirdParty contained nchan_publisher_location
+syn keyword ngxDirectiveThirdParty contained nchan_publisher_upstream_request
+syn keyword ngxDirectiveThirdParty contained nchan_pubsub
+syn keyword ngxDirectiveThirdParty contained nchan_pubsub_channel_id
+syn keyword ngxDirectiveThirdParty contained nchan_pubsub_location
+syn keyword ngxDirectiveThirdParty contained nchan_redis_fakesub_timer_interval
+syn keyword ngxDirectiveThirdParty contained nchan_redis_idle_channel_cache_timeout
+syn keyword ngxDirectiveThirdParty contained nchan_redis_namespace
+syn keyword ngxDirectiveThirdParty contained nchan_redis_pass
+syn keyword ngxDirectiveThirdParty contained nchan_redis_pass_inheritable
+syn keyword ngxDirectiveThirdParty contained nchan_redis_ping_interval
+syn keyword ngxDirectiveThirdParty contained nchan_redis_publish_msgpacked_max_size
+syn keyword ngxDirectiveThirdParty contained nchan_redis_server
+syn keyword ngxDirectiveThirdParty contained nchan_redis_storage_mode
+syn keyword ngxDirectiveThirdParty contained nchan_redis_url
+syn keyword ngxDirectiveThirdParty contained nchan_shared_memory_size
+syn keyword ngxDirectiveThirdParty contained nchan_storage_engine
+syn keyword ngxDirectiveThirdParty contained nchan_store_messages
+syn keyword ngxDirectiveThirdParty contained nchan_stub_status
+syn keyword ngxDirectiveThirdParty contained nchan_sub_channel_id
+syn keyword ngxDirectiveThirdParty contained nchan_subscribe_existing_channels_only
+syn keyword ngxDirectiveThirdParty contained nchan_subscribe_request
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber_channel_id
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber_compound_etag_message_id
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber_first_message
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber_http_raw_stream_separator
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber_last_message_id
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber_location
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber_message_id_custom_etag_header
+syn keyword ngxDirectiveThirdParty contained nchan_subscriber_timeout
+syn keyword ngxDirectiveThirdParty contained nchan_unsubscribe_request
+syn keyword ngxDirectiveThirdParty contained nchan_use_redis
+syn keyword ngxDirectiveThirdParty contained nchan_websocket_client_heartbeat
+syn keyword ngxDirectiveThirdParty contained nchan_websocket_ping_interval
+syn keyword ngxDirectiveThirdParty contained push_authorized_channels_only
+syn keyword ngxDirectiveThirdParty contained push_channel_group
+syn keyword ngxDirectiveThirdParty contained push_channel_timeout
+syn keyword ngxDirectiveThirdParty contained push_max_channel_id_length
+syn keyword ngxDirectiveThirdParty contained push_max_channel_subscribers
+syn keyword ngxDirectiveThirdParty contained push_max_message_buffer_length
+syn keyword ngxDirectiveThirdParty contained push_max_reserved_memory
+syn keyword ngxDirectiveThirdParty contained push_message_buffer_length
+syn keyword ngxDirectiveThirdParty contained push_message_timeout
+syn keyword ngxDirectiveThirdParty contained push_min_message_buffer_length
+syn keyword ngxDirectiveThirdParty contained push_publisher
+syn keyword ngxDirectiveThirdParty contained push_store_messages
+syn keyword ngxDirectiveThirdParty contained push_subscriber
+syn keyword ngxDirectiveThirdParty contained push_subscriber_concurrency
+syn keyword ngxDirectiveThirdParty contained push_subscriber_timeout

-" HTTP Push Module (DEPRECATED) http://pushmodule.slact.net/
-" Turn Nginx into an adept long-polling HTTP Push (Comet) server.
-syn keyword ngxDirectiveDeprecated contained push_buffer_size
-syn keyword ngxDirectiveDeprecated contained push_listener
-syn keyword ngxDirectiveDeprecated contained push_message_timeout
-syn keyword ngxDirectiveDeprecated contained push_queue_messages
-syn keyword ngxDirectiveDeprecated contained push_sender
+" Push Stream
+" https://github.com/wandenberg/nginx-push-stream-module
+syn keyword ngxDirectiveThirdParty contained push_stream_allow_connections_to_events_channel
+syn keyword ngxDirectiveThirdParty contained push_stream_allowed_origins
+syn keyword ngxDirectiveThirdParty contained push_stream_authorized_channels_only
+syn keyword ngxDirectiveThirdParty contained push_stream_channel_deleted_message_text
+syn keyword ngxDirectiveThirdParty contained push_stream_channel_inactivity_time
+syn keyword ngxDirectiveThirdParty contained push_stream_channel_info_on_publish
+syn keyword ngxDirectiveThirdParty contained push_stream_channels_path
+syn keyword ngxDirectiveThirdParty contained push_stream_channels_statistics
+syn keyword ngxDirectiveThirdParty contained push_stream_events_channel_id
+syn keyword ngxDirectiveThirdParty contained push_stream_footer_template
+syn keyword ngxDirectiveThirdParty contained push_stream_header_template
+syn keyword ngxDirectiveThirdParty contained push_stream_header_template_file
+syn keyword ngxDirectiveThirdParty contained push_stream_last_event_id
+syn keyword ngxDirectiveThirdParty contained push_stream_last_received_message_tag
+syn keyword ngxDirectiveThirdParty contained push_stream_last_received_message_time
+syn keyword ngxDirectiveThirdParty contained push_stream_longpolling_connection_ttl
+syn keyword ngxDirectiveThirdParty contained push_stream_max_channel_id_length
+syn keyword ngxDirectiveThirdParty contained push_stream_max_messages_stored_per_channel
+syn keyword ngxDirectiveThirdParty contained push_stream_max_number_of_channels
+syn keyword ngxDirectiveThirdParty contained push_stream_max_number_of_wildcard_channels
+syn keyword ngxDirectiveThirdParty contained push_stream_max_subscribers_per_channel
+syn keyword ngxDirectiveThirdParty contained push_stream_message_template
+syn keyword ngxDirectiveThirdParty contained push_stream_message_ttl
+syn keyword ngxDirectiveThirdParty contained push_stream_padding_by_user_agent
+syn keyword ngxDirectiveThirdParty contained push_stream_ping_message_interval
+syn keyword ngxDirectiveThirdParty contained push_stream_ping_message_text
+syn keyword ngxDirectiveThirdParty contained push_stream_publisher
+syn keyword ngxDirectiveThirdParty contained push_stream_shared_memory_size
+syn keyword ngxDirectiveThirdParty contained push_stream_store_messages
+syn keyword ngxDirectiveThirdParty contained push_stream_subscriber
+syn keyword ngxDirectiveThirdParty contained push_stream_subscriber_connection_ttl
+syn keyword ngxDirectiveThirdParty contained push_stream_timeout_with_body
+syn keyword ngxDirectiveThirdParty contained push_stream_user_agent
+syn keyword ngxDirectiveThirdParty contained push_stream_websocket_allow_publish
+syn keyword ngxDirectiveThirdParty contained push_stream_wildcard_channel_max_qtd
+syn keyword ngxDirectiveThirdParty contained push_stream_wildcard_channel_prefix

-" HTTP Redis Module https://www.nginx.com/resources/wiki/modules/redis/
-" Redis http://code.google.com/p/redis/ support.
+" redis module
+" https://www.nginx.com/resources/wiki/modules/redis/
syn keyword ngxDirectiveThirdParty contained redis_bind
syn keyword ngxDirectiveThirdParty contained redis_buffer_size
syn keyword ngxDirectiveThirdParty contained redis_connect_timeout
+syn keyword ngxDirectiveThirdParty contained redis_gzip_flag
syn keyword ngxDirectiveThirdParty contained redis_next_upstream
syn keyword ngxDirectiveThirdParty contained redis_pass
syn keyword ngxDirectiveThirdParty contained redis_read_timeout
syn keyword ngxDirectiveThirdParty contained redis_send_timeout

-" Iconv Module https://github.com/calio/iconv-nginx-module
-" A character conversion nginx module using libiconv
-syn keyword ngxDirectiveThirdParty contained set_iconv
-syn keyword ngxDirectiveThirdParty contained iconv_buffer_size
-syn keyword ngxDirectiveThirdParty contained iconv_filter
+" ngx_http_response
+" http://catap.ru/downloads/nginx/
+syn keyword ngxDirectiveThirdParty contained response
+syn keyword ngxDirectiveThirdParty contained response_type
+
+" nginx_substitutions_filter
+" https://github.com/yaoweibin/ngx_http_substitutions_filter_module
+syn keyword ngxDirectiveThirdParty contained subs_buffers
+syn keyword ngxDirectiveThirdParty contained subs_filter
+syn keyword ngxDirectiveThirdParty contained subs_filter_bypass
+syn keyword ngxDirectiveThirdParty contained subs_filter_types
+syn keyword ngxDirectiveThirdParty contained subs_line_buffer_size

-" IP Blocker Module https://github.com/tmthrgd/nginx-ip-blocker
-" An efficient shared memory IP blocking system for nginx.
-syn keyword ngxDirectiveThirdParty contained ip_blocker
-
-" IP2Location Module https://github.com/chrislim2888/ip2location-nginx
-" Allows user to lookup for geolocation information using IP2Location database
-syn keyword ngxDirectiveThirdParty contained ip2location_database
+" Tarantool nginx upstream module
+" https://github.com/tarantool/nginx_upstream_module
+syn keyword ngxDirectiveThirdParty contained tnt_allowed_indexes
+syn keyword ngxDirectiveThirdParty contained tnt_allowed_spaces
+syn keyword ngxDirectiveThirdParty contained tnt_buffer_size
+syn keyword ngxDirectiveThirdParty contained tnt_connect_timeout
+syn keyword ngxDirectiveThirdParty contained tnt_delete
+syn keyword ngxDirectiveThirdParty contained tnt_http_methods
+syn keyword ngxDirectiveThirdParty contained tnt_http_rest_methods
+syn keyword ngxDirectiveThirdParty contained tnt_in_multiplier
+syn keyword ngxDirectiveThirdParty contained tnt_insert
+syn keyword ngxDirectiveThirdParty contained tnt_method
+syn keyword ngxDirectiveThirdParty contained tnt_multireturn_skip_count
+syn keyword ngxDirectiveThirdParty contained tnt_next_upstream
+syn keyword ngxDirectiveThirdParty contained tnt_next_upstream_timeout
+syn keyword ngxDirectiveThirdParty contained tnt_next_upstream_tries
+syn keyword ngxDirectiveThirdParty contained tnt_out_multiplier
+syn keyword ngxDirectiveThirdParty contained tnt_pass
+syn keyword ngxDirectiveThirdParty contained tnt_pass_http_request
+syn keyword ngxDirectiveThirdParty contained tnt_pass_http_request_buffer_size
+syn keyword ngxDirectiveThirdParty contained tnt_pure_result
+syn keyword ngxDirectiveThirdParty contained tnt_read_timeout
+syn keyword ngxDirectiveThirdParty contained tnt_replace
+syn keyword ngxDirectiveThirdParty contained tnt_select
+syn keyword ngxDirectiveThirdParty contained tnt_select_limit_max
+syn keyword ngxDirectiveThirdParty contained tnt_send_timeout
+syn keyword ngxDirectiveThirdParty contained tnt_set_header

-" JS Module https://github.com/peter-leonov/ngx_http_js_module
-" Reflect the nginx functionality in JS
-syn keyword ngxDirectiveThirdParty contained js
-syn keyword ngxDirectiveThirdParty contained js_access
-syn keyword ngxDirectiveThirdParty contained js_load
-syn keyword ngxDirectiveThirdParty contained js_set
+" A module for nginx web server for handling file uploads using multipart/form-data encoding (RFC 1867)
+" https://github.com/Austinb/nginx-upload-module
+syn keyword ngxDirectiveThirdParty contained upload_aggregate_form_field
+syn keyword ngxDirectiveThirdParty contained upload_archive_elm
+syn keyword ngxDirectiveThirdParty contained upload_archive_elm_separator
+syn keyword ngxDirectiveThirdParty contained upload_archive_path
+syn keyword ngxDirectiveThirdParty contained upload_archive_path_separator
+syn keyword ngxDirectiveThirdParty contained upload_buffer_size
+syn keyword ngxDirectiveThirdParty contained upload_cleanup
+syn keyword ngxDirectiveThirdParty contained upload_content_type
+syn keyword ngxDirectiveThirdParty contained upload_discard
+syn keyword ngxDirectiveThirdParty contained upload_field_name
+syn keyword ngxDirectiveThirdParty contained upload_file_crc32
+syn keyword ngxDirectiveThirdParty contained upload_file_md5
+syn keyword ngxDirectiveThirdParty contained upload_file_md5_uc
+syn keyword ngxDirectiveThirdParty contained upload_file_name
+syn keyword ngxDirectiveThirdParty contained upload_file_sha1
+syn keyword ngxDirectiveThirdParty contained upload_file_sha1_uc
+syn keyword ngxDirectiveThirdParty contained upload_file_size
+syn keyword ngxDirectiveThirdParty contained upload_filter
+syn keyword ngxDirectiveThirdParty contained upload_max_file_size
+syn keyword ngxDirectiveThirdParty contained upload_max_output_body_len
+syn keyword ngxDirectiveThirdParty contained upload_max_part_header_len
+syn keyword ngxDirectiveThirdParty contained upload_pass
+syn keyword ngxDirectiveThirdParty contained upload_pass_args
+syn keyword ngxDirectiveThirdParty contained upload_pass_form_field
+syn keyword ngxDirectiveThirdParty contained upload_set_form_field
+syn keyword ngxDirectiveThirdParty contained upload_store
+syn keyword ngxDirectiveThirdParty contained upload_store_access
+syn keyword ngxDirectiveThirdParty contained upload_tmp_path
+syn keyword ngxDirectiveThirdParty contained upload_unzip
+syn keyword ngxDirectiveThirdParty contained upload_unzip_buffers
+syn keyword ngxDirectiveThirdParty contained upload_unzip_hash
+syn keyword ngxDirectiveThirdParty contained upload_unzip_max_file_name_len
+syn keyword ngxDirectiveThirdParty contained upload_unzip_window
+syn keyword ngxDirectiveThirdParty contained upload_void_content_type

-" Limit Upload Rate Module https://github.com/cfsego/limit_upload_rate
-" Limit client-upload rate when they are sending request bodies to you
-syn keyword ngxDirectiveThirdParty contained limit_upload_rate
-syn keyword ngxDirectiveThirdParty contained limit_upload_rate_after
-
-" Limit Upstream Module https://github.com/cfsego/nginx-limit-upstream
-" Limit the number of connections to upstream for NGINX
-syn keyword ngxDirectiveThirdParty contained limit_upstream_zone
-syn keyword ngxDirectiveThirdParty contained limit_upstream_conn
-syn keyword ngxDirectiveThirdParty contained limit_upstream_log_level
+" nginx-upload-progress-module
+" https://github.com/masterzen/nginx-upload-progress-module
+syn keyword ngxDirectiveThirdParty contained report_uploads
+syn keyword ngxDirectiveThirdParty contained track_uploads
+syn keyword ngxDirectiveThirdParty contained upload_progress
+syn keyword ngxDirectiveThirdParty contained upload_progress_content_type
+syn keyword ngxDirectiveThirdParty contained upload_progress_header
+syn keyword ngxDirectiveThirdParty contained upload_progress_java_output
+syn keyword ngxDirectiveThirdParty contained upload_progress_json_output
+syn keyword ngxDirectiveThirdParty contained upload_progress_jsonp_output
+syn keyword ngxDirectiveThirdParty contained upload_progress_jsonp_parameter
+syn keyword ngxDirectiveThirdParty contained upload_progress_template

-" Log If Module https://github.com/cfsego/ngx_log_if
-" Conditional accesslog for nginx
-syn keyword ngxDirectiveThirdParty contained access_log_bypass_if
+" Health checks upstreams for nginx
+" https://github.com/yaoweibin/nginx_upstream_check_module
+syn keyword ngxDirectiveThirdParty contained check
+syn keyword ngxDirectiveThirdParty contained check_fastcgi_param
+syn keyword ngxDirectiveThirdParty contained check_http_expect_alive
+syn keyword ngxDirectiveThirdParty contained check_http_send
+syn keyword ngxDirectiveThirdParty contained check_keepalive_requests
+syn keyword ngxDirectiveThirdParty contained check_shm_size
+syn keyword ngxDirectiveThirdParty contained check_status
+
+" The fair load balancer module for nginx
+" https://github.com/cryptofuture/nginx-upstream-fair
+syn keyword ngxDirectiveThirdParty contained fair
+syn keyword ngxDirectiveThirdParty contained upstream_fair_shm_size

-" Log Request Speed (DEPRECATED) http://wiki.nginx.org/NginxHttpLogRequestSpeed
-" Log the time it took to process each request.
-syn keyword ngxDirectiveDeprecated contained log_request_speed_filter
-syn keyword ngxDirectiveDeprecated contained log_request_speed_filter_timeout
-
-" Log ZeroMQ Module https://github.com/alticelabs/nginx-log-zmq
-" ZeroMQ logger module for nginx
-syn keyword ngxDirectiveThirdParty contained log_zmq_server
-syn keyword ngxDirectiveThirdParty contained log_zmq_endpoint
-syn keyword ngxDirectiveThirdParty contained log_zmq_format
-syn keyword ngxDirectiveThirdParty contained log_zmq_off
+" Nginx Video Thumb Extractor Module
+" https://github.com/wandenberg/nginx-video-thumbextractor-module
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_image_height
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_image_width
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_baseline
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_dpi
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_optimize
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_progressive_mode
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_quality
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_jpeg_smooth
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_next_time
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_only_keyframe
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_processes_per_worker
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_threads
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_color
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_cols
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_margin
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_max_cols
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_max_rows
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_padding
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_rows
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_tile_sample_interval
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_video_filename
+syn keyword ngxDirectiveThirdParty contained video_thumbextractor_video_second

-" Lower/UpperCase Module https://github.com/replay/ngx_http_lower_upper_case
-" This module simply uppercases or lowercases a string and saves it into a new variable.
-syn keyword ngxDirectiveThirdParty contained lower
-syn keyword ngxDirectiveThirdParty contained upper
+" drizzle-nginx-module - Upstream module for talking to MySQL and Drizzle directly
+" https://github.com/openresty/drizzle-nginx-module
+syn keyword ngxDirectiveThirdParty contained drizzle_buffer_size
+syn keyword ngxDirectiveThirdParty contained drizzle_connect_timeout
+syn keyword ngxDirectiveThirdParty contained drizzle_dbname
+syn keyword ngxDirectiveThirdParty contained drizzle_keepalive
+syn keyword ngxDirectiveThirdParty contained drizzle_module_header
+syn keyword ngxDirectiveThirdParty contained drizzle_pass
+syn keyword ngxDirectiveThirdParty contained drizzle_query
+syn keyword ngxDirectiveThirdParty contained drizzle_recv_cols_timeout
+syn keyword ngxDirectiveThirdParty contained drizzle_recv_rows_timeout
+syn keyword ngxDirectiveThirdParty contained drizzle_send_query_timeout
+syn keyword ngxDirectiveThirdParty contained drizzle_server
+syn keyword ngxDirectiveThirdParty contained drizzle_status

-" Lua Upstream Module https://github.com/openresty/lua-upstream-nginx-module
-" Nginx C module to expose Lua API to ngx_lua for Nginx upstreams
+" ngx_dynamic_upstream
+" https://github.com/cubicdaiya/ngx_dynamic_upstream
+syn keyword ngxDirectiveThirdParty contained dynamic_upstream
+
+" encrypt and decrypt nginx variable values
+" https://github.com/openresty/encrypted-session-nginx-module
+syn keyword ngxDirectiveThirdParty contained encrypted_session_expires
+syn keyword ngxDirectiveThirdParty contained encrypted_session_iv
+syn keyword ngxDirectiveThirdParty contained encrypted_session_key
+syn keyword ngxDirectiveThirdParty contained set_decrypt_session
+syn keyword ngxDirectiveThirdParty contained set_encrypt_session

-" Lua Module https://github.com/openresty/lua-nginx-module
-" Embed the Power of Lua into NGINX HTTP servers
-syn keyword ngxDirectiveThirdParty contained lua_use_default_type
-syn keyword ngxDirectiveThirdParty contained lua_malloc_trim
-syn keyword ngxDirectiveThirdParty contained lua_code_cache
-syn keyword ngxDirectiveThirdParty contained lua_regex_cache_max_entries
-syn keyword ngxDirectiveThirdParty contained lua_regex_match_limit
-syn keyword ngxDirectiveThirdParty contained lua_package_path
-syn keyword ngxDirectiveThirdParty contained lua_package_cpath
+" serve content directly from MongoDB's GridFS
+" https://github.com/mdirolf/nginx-gridfs
+syn keyword ngxDirectiveThirdParty contained gridfs
+syn keyword ngxDirectiveThirdParty contained mongo
+
+" Adds support for arithmetic operations to NGINX config
+" https://github.com/arut/nginx-let-module
+syn keyword ngxDirectiveThirdParty contained let
+
+" ngx_http_lua_module - Embed the power of Lua into Nginx HTTP Servers
+" https://github.com/openresty/lua-nginx-module
+syn keyword ngxDirectiveThirdParty contained access_by_lua
+syn keyword ngxDirectiveThirdParty contained access_by_lua_block
+syn keyword ngxDirectiveThirdParty contained access_by_lua_file
+syn keyword ngxDirectiveThirdParty contained access_by_lua_no_postpone
+syn keyword ngxDirectiveThirdParty contained balancer_by_lua_block
+syn keyword ngxDirectiveThirdParty contained balancer_by_lua_file
+syn keyword ngxDirectiveThirdParty contained body_filter_by_lua
+syn keyword ngxDirectiveThirdParty contained body_filter_by_lua_block
+syn keyword ngxDirectiveThirdParty contained body_filter_by_lua_file
+syn keyword ngxDirectiveThirdParty contained content_by_lua
+syn keyword ngxDirectiveThirdParty contained content_by_lua_block
+syn keyword ngxDirectiveThirdParty contained content_by_lua_file
+syn keyword ngxDirectiveThirdParty contained header_filter_by_lua
+syn keyword ngxDirectiveThirdParty contained header_filter_by_lua_block
+syn keyword ngxDirectiveThirdParty contained header_filter_by_lua_file
syn keyword ngxDirectiveThirdParty contained init_by_lua
syn keyword ngxDirectiveThirdParty contained init_by_lua_block
syn keyword ngxDirectiveThirdParty contained init_by_lua_file
syn keyword ngxDirectiveThirdParty contained init_worker_by_lua
syn keyword ngxDirectiveThirdParty contained init_worker_by_lua_block
syn keyword ngxDirectiveThirdParty contained init_worker_by_lua_file
-syn keyword ngxDirectiveThirdParty contained set_by_lua
-syn keyword ngxDirectiveThirdParty contained set_by_lua_block
-syn keyword ngxDirectiveThirdParty contained set_by_lua_file
-syn keyword ngxDirectiveThirdParty contained content_by_lua
-syn keyword ngxDirectiveThirdParty contained content_by_lua_block
-syn keyword ngxDirectiveThirdParty contained content_by_lua_file
+syn keyword ngxDirectiveThirdParty contained log_by_lua
+syn keyword ngxDirectiveThirdParty contained log_by_lua_block
+syn keyword ngxDirectiveThirdParty contained log_by_lua_file
+syn keyword ngxDirectiveThirdParty contained lua_capture_error_log
+syn keyword ngxDirectiveThirdParty contained lua_check_client_abort
+syn keyword ngxDirectiveThirdParty contained lua_code_cache
+syn keyword ngxDirectiveThirdParty contained lua_fake_shm
+syn keyword ngxDirectiveThirdParty contained lua_http10_buffering
+syn keyword ngxDirectiveThirdParty contained lua_malloc_trim
+syn keyword ngxDirectiveThirdParty contained lua_max_pending_timers
+syn keyword ngxDirectiveThirdParty contained lua_max_running_timers
+syn keyword ngxDirectiveThirdParty contained lua_need_request_body
+syn keyword ngxDirectiveThirdParty contained lua_package_cpath
+syn keyword ngxDirectiveThirdParty contained lua_package_path
+syn keyword ngxDirectiveThirdParty contained lua_regex_cache_max_entries
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel

[nginx] Contrib: vim syntax, update core module directives.

$
0
0
details: http://hg.nginx.org/nginx/rev/6d2e92acb013
branches:
changeset: 7186:6d2e92acb013
user: Gena Makhomed <gmm@csdoc.com>
date: Thu Dec 28 12:01:05 2017 +0200
description:
Contrib: vim syntax, update core module directives.

Removed non-existent directives and directive redefinitions.

diffstat:

contrib/vim/syntax/nginx.vim | 11 -----------
1 files changed, 0 insertions(+), 11 deletions(-)

diffs (58 lines):

diff --git a/contrib/vim/syntax/nginx.vim b/contrib/vim/syntax/nginx.vim
--- a/contrib/vim/syntax/nginx.vim
+++ b/contrib/vim/syntax/nginx.vim
@@ -90,9 +90,7 @@ syn keyword ngxDirectiveBlock contained

syn keyword ngxDirectiveImportant contained include
syn keyword ngxDirectiveImportant contained root
-"syn keyword ngxDirectiveImportant contained server
syn keyword ngxDirectiveImportant contained server_name
-"syn keyword ngxDirectiveImportant contained listen
syn keyword ngxDirectiveImportant contained internal
syn keyword ngxDirectiveImportant contained proxy_pass
syn keyword ngxDirectiveImportant contained memcached_pass
@@ -151,7 +149,6 @@ syn keyword ngxDirective contained autoi
syn keyword ngxDirective contained autoindex_format
syn keyword ngxDirective contained autoindex_localtime
syn keyword ngxDirective contained charset
-syn keyword ngxDirective contained charset_map
syn keyword ngxDirective contained charset_types
syn keyword ngxDirective contained chunked_transfer_encoding
syn keyword ngxDirective contained client_body_buffer_size
@@ -466,10 +463,6 @@ syn keyword ngxDirective contained reset
syn keyword ngxDirective contained resolver
syn keyword ngxDirective contained resolver_timeout
syn keyword ngxDirective contained rewrite_log
-syn keyword ngxDirective contained rtsig_overflow_events
-syn keyword ngxDirective contained rtsig_overflow_test
-syn keyword ngxDirective contained rtsig_overflow_threshold
-syn keyword ngxDirective contained rtsig_signo
syn keyword ngxDirective contained satisfy
syn keyword ngxDirective contained scgi_bind
syn keyword ngxDirective contained scgi_buffer_size
@@ -583,7 +576,6 @@ syn keyword ngxDirective contained sub_f
syn keyword ngxDirective contained tcp_nodelay
syn keyword ngxDirective contained tcp_nopush
syn keyword ngxDirective contained thread_pool
-syn keyword ngxDirective contained thread_stack_size
syn keyword ngxDirective contained timeout
syn keyword ngxDirective contained timer_resolution
syn keyword ngxDirective contained types_hash_bucket_size
@@ -636,7 +628,6 @@ syn keyword ngxDirective contained uwsgi
syn keyword ngxDirective contained uwsgi_next_upstream_tries
syn keyword ngxDirective contained uwsgi_no_cache
syn keyword ngxDirective contained uwsgi_param
-syn keyword ngxDirective contained uwsgi_pass
syn keyword ngxDirective contained uwsgi_pass_header
syn keyword ngxDirective contained uwsgi_pass_request_body
syn keyword ngxDirective contained uwsgi_pass_request_headers
@@ -670,9 +661,7 @@ syn keyword ngxDirective contained worke
syn keyword ngxDirective contained worker_processes
syn keyword ngxDirective contained worker_rlimit_core
syn keyword ngxDirective contained worker_rlimit_nofile
-syn keyword ngxDirective contained worker_rlimit_sigpending
syn keyword ngxDirective contained worker_shutdown_timeout
-syn keyword ngxDirective contained worker_threads
syn keyword ngxDirective contained working_directory
syn keyword ngxDirective contained xclient
syn keyword ngxDirective contained xml_entities
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel

Re: [PATCH 1 of 2] Contrib: vim syntax, update 3rd party module directives.

$
0
0
Hello!

On Thu, Dec 28, 2017 at 12:06:23PM +0200, Gena Makhomed wrote:

> # HG changeset patch
> # User Gena Makhomed <gmm@csdoc.com>
> # Date 1514454584 -7200
> # Thu Dec 28 11:49:44 2017 +0200
> # Node ID 215684d20d906135281b2540149d354b6e4bb852
> # Parent 6939f75c4b139203d409517c4f0e35342a3e70cb
> Contrib: vim syntax, update 3rd party module directives.
>
> 3rd party modules list synchronized with FreeBSD nginx-devel port.
>
> diff -r 6939f75c4b13 -r 215684d20d90 contrib/vim/syntax/nginx.vim
> --- a/contrib/vim/syntax/nginx.vim Mon Dec 25 18:30:01 2017 +0200
> +++ b/contrib/vim/syntax/nginx.vim Thu Dec 28 11:49:44 2017 +0200
> @@ -683,529 +683,618 @@
> syn keyword ngxDirective contained xslt_types
> syn keyword ngxDirective contained zone
>
> -" 3rd party module list:
> -" https://www.nginx.com/resources/wiki/modules/
> +" 3rd party modules list taken from
> +"
> https://github.com/freebsd/freebsd-ports/blob/master/www/nginx-devel/Makefile
> +"
> -----------------------------------------------------------------------------
>
> -" Accept Language Module
> https://www.nginx.com/resources/wiki/modules/accept_language/
> -" Parses the Accept-Language header and gives the most suitable locale
> from a list of supported locales.
> +" Accept Language
> +" https://github.com/giom/nginx_accept_language_module
> syn keyword ngxDirectiveThirdParty contained set_from_accept_language

[...]

> @@ -2178,6 +2236,7 @@
> hi link ngxDirectiveDeprecated Error
> hi link ngxDirective Identifier
> hi link ngxDirectiveThirdParty Special
> +hi link ngxDirectiveThirdPartyDeprecated Error

For ngxDirectiveThirdPartyDeprecated to actually work, you have to
link into the ngxDirectives cluster:

diff --git a/contrib/vim/syntax/nginx.vim b/contrib/vim/syntax/nginx.vim
--- a/contrib/vim/syntax/nginx.vim
+++ b/contrib/vim/syntax/nginx.vim
@@ -37,7 +37,7 @@ syn cluster ngxTopLevel
syn cluster ngxDirectives
\ contains=ngxDirective,ngxDirectiveBlock,ngxDirectiveImportant
\ add=ngxDirectiveControl,ngxDirectiveError,ngxDirectiveDeprecated
- \ add=ngxDirectiveThirdParty
+ \ add=ngxDirectiveThirdParty,ngxDirectiveThirdPartyDeprecated
syn cluster ngxParams
\ contains=ngxParam,ngxString,ngxParamComment,ngxSemicolon,ngxBlock

Committed with the above fix, thanks.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Viewing all 53287 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>