All Projects → gabihodoroaga → nginx-ntlm-module

gabihodoroaga / nginx-ntlm-module

Licence: MIT License
A nginx module to allow proxying requests with NTLM Authentication.

Programming Languages

Dockerfile
14818 projects
c
50402 projects - #5 most used programming language
shell
77523 projects
perl
6916 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to nginx-ntlm-module

vania
A module which fairly distributes a list of arbitrary objects among a set of targets, considering weights.
Stars: ✭ 75 (+134.38%)
Mutual labels:  module
webtrees-pedigree-chart
SVG based pedigree chart module for webtrees genealogy application.
Stars: ✭ 24 (-25%)
Mutual labels:  module
HistoryPx
Extended History Information and Last Output Support in PowerShell
Stars: ✭ 62 (+93.75%)
Mutual labels:  module
vbl
A collection of useful Bash modules to simplify everyday programming
Stars: ✭ 15 (-53.12%)
Mutual labels:  module
QtApng
An apng image plugin for Qt to support animated PNGs
Stars: ✭ 75 (+134.38%)
Mutual labels:  module
alibabacloud-tairjedis-sdk
alibabacloud-tairjedis-sdk
Stars: ✭ 30 (-6.25%)
Mutual labels:  module
core
augejs is a progressive Node.js framework for building applications. https://github.com/augejs/augejs.github.io
Stars: ✭ 18 (-43.75%)
Mutual labels:  module
nuxt-storyblok-queries
Nuxt.js module to simplify queries to the Storyblok API
Stars: ✭ 17 (-46.87%)
Mutual labels:  module
ci4-album
🔥 CodeIgniter 4 example Album module uses Domain Driven Design Architecture with Tactical Pattern
Stars: ✭ 67 (+109.38%)
Mutual labels:  module
craft-module-field-type
Craft CMS 3 lib → collection of base classes for easier implementing new field types being used in matrix blocks for content modules
Stars: ✭ 14 (-56.25%)
Mutual labels:  module
terraform-aws-elasticache
Terraform module to create Elasticache Cluster and replica for Redis and Memcache.
Stars: ✭ 19 (-40.62%)
Mutual labels:  module
Moduler
Android Moduler 组件化demo
Stars: ✭ 33 (+3.13%)
Mutual labels:  module
vscode-requirejs
Provides goto definition functionality for require js modules.
Stars: ✭ 20 (-37.5%)
Mutual labels:  module
surge
Network toolbox Surge rules, modules and configuration files, For pure self use.
Stars: ✭ 207 (+546.88%)
Mutual labels:  module
CSwift
C Module for Swift, Swift Script and Dynamic Library Call;Swift中直接调用C语言源程序的展示程序
Stars: ✭ 46 (+43.75%)
Mutual labels:  module
JlContentFieldsFilter
Модуль фильтрации материалов Joomla по дополнительным полям
Stars: ✭ 20 (-37.5%)
Mutual labels:  module
htmlgo
Type safe and modularize way to generate html on server side.
Stars: ✭ 43 (+34.38%)
Mutual labels:  module
foundryvtt-simple-calendar
A simple calendar module for the FoundryVTT system
Stars: ✭ 25 (-21.87%)
Mutual labels:  module
mediawiki-antispam
Antispam extension for MediaWiki.
Stars: ✭ 15 (-53.12%)
Mutual labels:  module
ngx-ionic-image-viewer
An Ionic 4 Angular component to view & zoom on images and photos without any additional dependencies.
Stars: ✭ 129 (+303.13%)
Mutual labels:  module

nginx-ntlm-module

The NTLM module allows proxying requests with NTLM Authentication. The upstream connection is bound to the client connection once the client sends a request with the "Authorization" header field value starting with "Negotiate" or "NTLM". Further client requests will be proxied through the same upstream connection, keeping the authentication context.

How to use

Syntax: ntlm [connections];
Default: ntlm 100;
Context: upstream

upstream http_backend {
    server 127.0.0.1:8080;

    ntlm;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        # next 2 settings are required for the keepalive to work properly
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

The connections parameter sets the maximum number of connections to the upstream servers that are preserved in the cache.

Syntax: ntlm_timeout timeout;
Default: ntlm_timeout 60s;
Context: upstream

Sets the timeout during which an idle connection to an upstream server will stay open.

Build

Follow the instructions from Building nginx from Sources and add the following line to the configure command

./configure \
    --add-module=../nginx-ntlm-module

To build this as dynamic module run this command

./configure \
    --add-dynamic-module=../nginx-ntlm-module

Tests

In order to run the tests you need nodejs and perl installed on your system

# install the backend packages
npm install -C t/backend

# instal the test framework
cpan Test::Nginx

# set the path to your nginx location
export PATH=/opt/local/nginx/sbin:$PATH

prove -r t

Acknowledgments

  • This module is using most of the code from the original nginx keepalive module.
  • DO NOT USE THIS IN PRODUCTION. Nginx Plus has support for NTLM.

Authors

TODO

  • Add tests
  • Add support for multiple workers
  • Drop the upstream connection when the client connection drops.
  • Add travis ci
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].