Re: How important is the "reuseport" flag for quic?

2024-06-25 Thread J Carter
Hello,

On Sat, 15 Jun 2024 13:58:55 +0100
Dominic Preston  wrote:

> I'm using nginx 1.26.1 from the nginx.org ubuntu repo.
> 
> I find when I remove the "reuseport" flag from the "listen" directive
> for my quic port, a lot page assets fail to load, and the browser
> ultimately falls back to http/2.
> 
> When I re-add "reuseport", all http/3 requests succeed again.
> 
> How crucial is "reuseport" when using quic on nginx? Is it normal for
> things to break badly without it?
> ___

Very, it's required to use the reuseport parameter when using multiple
workers as per the documentation here[1] so that all UDP packets of a
HTTP/3/quic connection are routed to and handled by the same worker, as
I understand. 

This is just due to limitations of how UDP (being
stateless and sessionless) is handled by the kernel compared to TCP
(which is session orientated).

[1] https://nginx.org/en/docs/quic.html#configuration
___
nginx mailing list
nginx@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx


njs-0.8.5

2024-06-25 Thread Dmitry Volyntsev

Hello,

I'm glad to announce a new release of NGINX JavaScript module (njs).

Learn more about njs:

- Overview and introduction:
  https://nginx.org/en/docs/njs/
- NGINX JavaScript in Your Web Server Configuration:
  https://youtu.be/Jc_L6UffFOs
- Extending NGINX with Custom Code:
  https://youtu.be/0CVhq4AUU7M
- Using node modules with njs:
  https://nginx.org/en/docs/njs/node_modules.html
- Writing njs code using TypeScript definition files:
  https://nginx.org/en/docs/njs/typescript.html

Feel free to try it and give us feedback on:

- Github:
  https://github.com/nginx/njs/issues

Additional examples and howtos can be found here:

- Github:
  https://github.com/nginx/njs-examples

Changes with njs 0.8.5   25 Jun 2024

    nginx modules:

    *) Change: r.variables.var, r.requestText, r.responseText,
   s.variables.var, and the "data" argument of the s.on() callback
   with "upload" or "download" event types will now convert bytes
   invalid in UTF-8 encoding into the replacement character. When
   working with binary data, use r.rawVariables.var, r.requestBuffer,
   r.responseBuffer, s.rawVariables.var, and the "upstream" or
   "downstream" event type for s.on() instead.

    *) Feature: added timeout argument for shared dictionary methods
   add(), set() and incr().

    *) Bugfix: fixed checking for duplicate js_set variables.

    *) Bugfix: fixed request Host header when the port is non-standard.

    *) Bugfix: fixed handling of a zero-length request body in ngx.fetch()
   and r.subrequest().

    *) Bugfix: fixed heap-buffer-overflow in Headers.get().

    *) Bugfix: fixed r.subrequest() error handling.

    Core:

    *) Feature: added zlib module for QuickJS engine.

    *) Bugfix: fixed zlib.inflate().

    *) Bugfix: fixed String.prototype.replaceAll() with zero-length
   argument.

    *) Bugfix: fixed retval handling after an exception in
   Array.prototype.toSpliced(), Array.prototype.toReversed(),
   Array.prototype.toSorted().

    *) Bugfix: fixed RegExp.prototype[@@replace]() with replacements
   containing "$'", "$\`" and strings with Unicode characters.

    *) Bugfix: fixed a one-byte overread in decodeURI() and
   decodeURIComponent().

    *) Bugfix: fixed tracking of argument scope.

    *) Bugfix: fixed integer overflow in Date.parse().
___
nginx mailing list
nginx@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx


Re: How important is the "reuseport" flag for quic?

2024-06-25 Thread Dominic Preston
On Tue, 25 Jun 2024 at 16:35, J Carter  wrote:

> Very, it's required to use the reuseport parameter when using multiple
> workers as per the documentation here[1] so that all UDP packets of a
> HTTP/3/quic connection are routed to and handled by the same worker, as
> I understand.

I see, thanks. It's so badly broken without the reuseport parameter
that I think using multiple workers with quic should imply reuseport,
or at the very least raise a warning in the logs if an attempt is made
to use such a configuration.
___
nginx mailing list
nginx@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx