Tatsuhiro Tsujikawa
cb6aea9aa9
Compile with -DNDEBUG
2021-10-06 21:28:00 +09:00
Tatsuhiro Tsujikawa
df064fa2ba
nghttpx: Unload BPF objects on reload to avoid running out of memlock
2021-09-29 19:33:16 +09:00
Tatsuhiro Tsujikawa
308c73bfa2
nghttpx: Read QUIC keying materials from file
...
Add --frontend-quic-secret-file to read QUIC keying materials from
file. --frontend-quic-connection-id-encryption-key was removed in
favor of this new option.
2021-09-23 11:18:07 +09:00
Tatsuhiro Tsujikawa
80cc623eb2
nghttpx: Allocate server id in Connection ID
2021-09-21 23:08:55 +09:00
Tatsuhiro Tsujikawa
fd060eb9f1
nghttpx: Connection ID encryption
2021-09-15 21:31:03 +09:00
Tatsuhiro Tsujikawa
00f65afe20
nghttpx: Fix incorrect quic frontend address matching
2021-09-12 18:07:54 +09:00
Tatsuhiro Tsujikawa
b743ee21f0
nghttpx: Implement closing and draining state
2021-09-05 18:01:27 +09:00
Tatsuhiro Tsujikawa
e01d61484d
Fix compile error with cmake
2021-08-31 16:49:55 +09:00
Tatsuhiro Tsujikawa
2b4dc4496f
nghttpx: Forward QUIC UDP datagram to lingering worker in graceful shutdown
...
Forward QUIC UDP datagram to lingering worker process which is in
graceful shutdown. Both SIGHUP and SIGUSR2 work. To make this work
correctly, eBPF is required.
2021-08-29 18:35:41 +09:00
Tatsuhiro Tsujikawa
d88eadff13
nghttpx: Make sure each quic frontend endpoint has a unique address
2021-08-26 21:34:49 +09:00
Tatsuhiro Tsujikawa
137da6adf6
nghttpx: Generate and set QUIC secrets
2021-08-26 21:34:49 +09:00
Tatsuhiro Tsujikawa
8563ec5a7a
nghttpx: Add options to specify eBPF program file path and disable eBPF
2021-08-26 21:34:49 +09:00
Tatsuhiro Tsujikawa
8ac4bee3bc
nghttpx: Add eBPF program to steer QUIC datagram to a correct socket
2021-08-26 21:34:49 +09:00
Tatsuhiro Tsujikawa
33c580ebbf
Forward QUIC packet to the correct worker
2021-08-23 22:21:48 +09:00
Tatsuhiro Tsujikawa
4eced8a393
Build without HTTP/3 support
2021-08-22 23:54:29 +09:00
Tatsuhiro Tsujikawa
940fdd5573
nghttpx: Read quic packet
2021-08-21 18:34:04 +09:00
Tatsuhiro Tsujikawa
8b2746abf1
nghttpx: Add QUICListener
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
01da060496
nghttpx: Create quic server socket
2021-08-21 18:33:39 +09:00
Tatsuhiro Tsujikawa
138419d232
Add "dnf" (= "do not forward") parameter to backend option
2021-08-14 17:16:21 +09:00
Tatsuhiro Tsujikawa
40af31da4c
nghttpx: Set connect_blocker and live_check after shuffling addresses
2021-07-14 23:09:28 +09:00
Tatsuhiro Tsujikawa
d32e20bcaa
nghttpx: Make sure that Pool gets cleared when all buffers are returned
2020-12-16 23:27:58 +09:00
Tatsuhiro Tsujikawa
fe8946ddc7
nghttpx: Fix bug that mruby is incorrectly shared between backends
...
Previously, mruby context is wrongly shared by multiple patterns if
the underlying SharedDownstreamAddr is shared by multiple
DownstreamAddrGroups. This commit fixes it.
2019-09-16 22:25:06 +09:00
Tatsuhiro Tsujikawa
8dc2b263ba
nghttpx: Use std::priority_queue
2019-01-22 00:01:17 +09:00
Tatsuhiro Tsujikawa
1ff9de4c87
nghttpx: Backend address selection with weight
2019-01-21 22:23:19 +09:00
Tatsuhiro Tsujikawa
e9c9838cdc
nghttpx: Pool h1 backend connection per address
...
Pool HTTP/1.1 backend connection per address and reuse it only when
the next round robin index refers to this address. Previously if
there is a pooled connection, there is no round robin selection.
2019-01-14 22:20:58 +09:00
Tatsuhiro Tsujikawa
fdcdb21c38
nghttpx: Randomize backend address round robin order per thread
2019-01-11 22:36:45 +09:00
Tatsuhiro Tsujikawa
1daf9ce8b7
nghttpx: Convert WorkerEventType to enum class
2018-11-02 14:14:48 +09:00
Tatsuhiro Tsujikawa
e7b7b037f6
nghttpx: Convert shrpx_cookie_secure to enum class
2018-10-16 23:06:59 +09:00
Tatsuhiro Tsujikawa
5e4f434fd8
nghttpx: Convert shrpx_session_affinity to enum class
2018-10-16 23:03:17 +09:00
Tatsuhiro Tsujikawa
20ea964f2f
nghttpx: Convert shrpx_proto to enum class
2018-10-16 22:59:34 +09:00
Tatsuhiro Tsujikawa
ec5729b1fa
Use std::make_unique
2018-10-15 23:02:44 +09:00
Tatsuhiro Tsujikawa
aeb92bbbe2
nghttpx: Add read/write-timeout parameters to backend option
2018-09-30 12:32:43 +09:00
Tatsuhiro Tsujikawa
fb9a204de2
nghttpx: Fix compile error without mruby
2018-08-31 21:58:35 +09:00
Tatsuhiro Tsujikawa
6195d747ce
nghttpx: Share mruby context if it is compiled from same file
2018-08-24 23:11:21 +09:00
Tatsuhiro Tsujikawa
b574ae6aa2
nghttpx: Support per-backend mruby script
2018-08-23 18:13:29 +09:00
Tatsuhiro Tsujikawa
880f948684
Enable IndentPPDirectives
2018-06-09 16:21:30 +09:00
Tatsuhiro Tsujikawa
5cc3d159e1
nghttpx: Add upgrade-scheme parameter to backend option
...
If "upgrade-scheme" parameter is present in backend option along with
"tls" paramter, HTTP/2 :scheme pseudo header field is changed to
"https" from "http" when forwarding a request to this particular
backend. This is a workaround for a server which requests "https"
scheme on HTTP/2 connection encrypted by TLS.
2018-01-08 18:08:01 +09:00
Tatsuhiro Tsujikawa
1ebb6810a1
nghttpx: Faster configuration loading with lots of backends
2017-12-01 23:06:06 +09:00
Tatsuhiro Tsujikawa
0028275d7b
nghttpx: Add affinity-cookie-secure parameter to backend option
2017-11-21 22:29:22 +09:00
Tatsuhiro Tsujikawa
b8fda6808b
nghttpx: Cookie based session affinity
2017-11-01 22:18:03 +09:00
Tatsuhiro Tsujikawa
0a2d1965df
nghttpx: Fix path matching bug
...
Previously, if path is empty or path does not start with "/", nghttpx
did not try to match with wildcard pattern. This commit fixes it.
2017-04-18 21:03:50 +09:00
Tatsuhiro Tsujikawa
058122b804
nghttpx: Rename shrpx_ssl.{h,cc} as shrpx_tls.{h,cc}
...
The namespace shrpx::ssl was also renamed as shrpx::tls.
2017-04-01 15:12:28 +09:00
Tatsuhiro Tsujikawa
f6301714db
nghttpx: Avoid copy of std::mt19937 which is huge
2017-03-26 21:14:34 +09:00
Tatsuhiro Tsujikawa
1e1d908c12
nghttpx: Eliminate global std::random_device
2017-03-17 22:25:10 +09:00
Tatsuhiro Tsujikawa
a7c780a732
nghttpx: Redirect to HTTPS URI with redirect-if-not-tls param
...
This commit removes frontend-tls parameter, and adds
redirect-if-not-tls parameter parameter to --backend option. nghttpx
now responds to the request with 308 status code to redirect the
request to https URI if frontend connection is not TLS encrypted, and
redirect-if-no-tls parameter is used in --backend option. The port
number in Location header field is 443 by default (thus omitted), but
it can be configurable using --redirect-https-port option.
2017-02-18 22:32:27 +09:00
Tatsuhiro Tsujikawa
e5b84fad09
nghttpx: Fix bug that old config is used during reloading config
2017-02-16 22:46:22 +09:00
Tatsuhiro Tsujikawa
4a06f9684f
nghttpx: Fix crash on SIGHUP with multi thread configuration
2017-02-08 22:14:23 +09:00
Tatsuhiro Tsujikawa
0b1ddad62b
nghttpx: Add frontend-tls parameter to backend to require client TLS
2017-01-28 22:19:14 +09:00
Tatsuhiro Tsujikawa
38b5cad4e3
nghttpx: Lookup backend host name dynamically
...
We have added "dns" parameter to backend option. If specified, name
lookup is done dynamically. If not, name lookup is done at start up,
or configuration reloading. nghttpx caches DNS result including error
case in 30 seconds in this commit. Later commit makes this
configurable.
DNS resolution is done asynchronously using c-ares library.
2016-12-10 21:09:50 +09:00
Tatsuhiro Tsujikawa
272cfa320e
nghttpx: Use BlockAllocator per DownstreamConfig
2016-10-02 22:28:43 +09:00