Tatsuhiro Tsujikawa
39d9efe4bd
nghttpx: Randomize backend address backend robin order per thread (2nd Ed.)
...
This is the 2nd attempt to randomize backend address round robin
order.
The initial attempt of doing this was
fdcdb21c38
, which has been reverted via
470f06e5f6
because it broke the session
affinity.
This time, we shuffles seq fields and avoid reordering addrs vector.
2022-08-04 18:38:23 +09:00
Tatsuhiro Tsujikawa
4cd95470d6
IPV6_PMTUDISC_DO
2022-05-19 22:57:34 +09:00
Tatsuhiro Tsujikawa
5ded01e288
nghttpx: Add affinity-cookie-stickiness backend parameter
2022-03-20 11:30:32 +09:00
Tatsuhiro Tsujikawa
470f06e5f6
nghttpx: Fix broken session affinity
...
Session affinity has been broken since
fdcdb21c38
. This commit reverts the
relevant part of the commit to fix the session affinity.
2022-03-15 19:35:49 +09:00
Tatsuhiro Tsujikawa
830cf1e294
Bump libbpf to v0.7.0 and turn on all strict features
2022-02-21 22:06:30 +09:00
Tatsuhiro Tsujikawa
2aed077761
Merge fd_set_recv_ecn to create_quic_server_socket and handle errors
2021-11-06 17:19:02 +09:00
Tatsuhiro Tsujikawa
68b2295f4e
nghttpx: Set IP_PMTUDISC_DO explicitly
2021-11-06 17:12:43 +09:00
Tatsuhiro Tsujikawa
47c33b8d03
nghttpx: Receive ECN
2021-11-05 20:57:24 +09:00
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