Welcome! Log In Create A New Profile

Advanced

Re: [PATCH] SO_REUSEPORT support for listen sockets

Piotr Sikora
July 26, 2013 07:02AM
Hey,

> @@ -76,6 +78,13 @@
> 0,
> NULL },
>
> + { ngx_string("so_reuseport"),
> + NGX_MAIN_CONF|NGX_DIRECT_CONF|NGX_CONF_TAKE1,
> + ngx_set_so_reuseport,
> + 0,
> + 0,
> + NULL },
> +
> { ngx_string("debug_points"),
> NGX_MAIN_CONF|NGX_DIRECT_CONF|NGX_CONF_TAKE1,
> ngx_conf_set_enum_slot,
> @@ -1361,3 +1370,24 @@
>
> return NGX_CONF_OK;
> }
> +
> +
> +static char *
> +ngx_set_so_reuseport(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
> +{
> + ngx_str_t *value;
> + ngx_core_conf_t *ccf;
> +
> + ccf = (ngx_core_conf_t *) conf;
> +
> + value = (ngx_str_t *) cf->args->elts;
> +
> + if (ngx_strcmp(value[1].data, "on") == 0) {
> + ccf->so_reuseport = 1;
> + } else if (ngx_strcmp(value[1].data, "off") == 0) {
> + ccf->so_reuseport = 0;
> + } else {
> + return "invalid value";
> + }
> + return NGX_CONF_OK;
> +}

This can be replaced with ngx_conf_set_flag_slot(), i.e.:

+ { ngx_string("so_reuseport"),
+ NGX_MAIN_CONF|NGX_DIRECT_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_flag_slot,
+ 0,
+ offsetof(ngx_core_conf_t, so_reuseport),
+ NULL },

Also:
1) like Tom said, you definitely need to guard code to make sure
SO_REUSEPORT is available,
2) this feature should be disabled on DragonFly versions prior to the
740d1d9 commit, because it clearly wouldn't do any good there,
3) it might make sense to expose this as an option of "listen"
directive, instead of a global setting,
4) how does this (OS-level sharding) play with nginx's upgrade process
(forking of new binary and passing listening fds)? Are there any
side-effects of this change that could result in dropped packets /
requests?

Best regards,
Piotr Sikora

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 5313 July 26, 2013 04:10AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Tom van der Woerdt 1109 July 26, 2013 04:32AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Piotr Sikora 911 July 26, 2013 07:02AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Maxim Dounin 1149 July 26, 2013 07:26AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 1025 July 28, 2013 09:24AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 1008 July 29, 2013 05:54AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 863 July 28, 2013 09:12AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Maxim Dounin 1000 July 29, 2013 10:58AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 1393 July 30, 2013 04:24AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 150
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready