nginx/auto
Roman Arutyunyan 8599df49d6 HTTP tunnel module
The module handles CONNECT requests and establishes a tunnel to a
backend.

Example config:

http {

    map $request_port $allow_port {
        80             1;
        443            1;
    }

    map $host $allow_host {
        hostnames;

        example.com    1;
        *.example.org  1;
    }

    server {
        listen 8000;

        resolver dns.example.com;

        if ($allow_port != 1) {
            return 403;
        }

        if ($allow_host != 1) {
            return 403;
        }

        tunnel_pass;
    }
}

Request:

    $ curl -x 127.0.0.1:8000 https://example.com
2026-05-08 09:42:58 +04:00
..
cc Configure: fix gcc version detection in some corner cases 2026-05-01 22:43:35 +01:00
lib Configure: MSVC compatibility with PCRE2 10.47. 2025-11-06 15:34:58 +04:00
os Core: added support for TCP keepalive parameters on macOS. 2025-05-27 01:59:02 +04:00
types
configure Win32: i386 now assumed when crossbuilding (ticket #2416). 2023-02-23 18:15:59 +03:00
define
endianness
feature
have
have_headers
headers
include
init Configure: marked top-level make targets as phony. 2021-02-20 12:44:26 +03:00
install Configure: fixed "make install" when cross-compiling to Windows. 2024-02-26 20:00:46 +00:00
make Configure: ordered directories. 2021-09-21 14:46:25 +03:00
module Configure: shared sources for addon modules. 2020-11-10 17:13:20 +03:00
modules HTTP tunnel module 2026-05-08 09:42:58 +04:00
nohave
options HTTP tunnel module 2026-05-08 09:42:58 +04:00
sources Core: the ngx_event_udp.h header file. 2022-01-25 15:41:48 +03:00
stubs
summary PCRE2 library support. 2021-12-25 01:07:15 +03:00
threads Configure: fixed static compilation with OpenSSL 1.1.1. 2018-03-22 15:55:57 +03:00
unix Configure: set NGX_KQUEUE_UDATA_T at compile time. 2025-07-11 16:25:51 +04:00