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 5323 July 26, 2013 04:10AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

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

Re: [PATCH] SO_REUSEPORT support for listen sockets

Piotr Sikora 915 July 26, 2013 07:02AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Maxim Dounin 1155 July 26, 2013 07:26AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 1029 July 28, 2013 09:24AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 1012 July 29, 2013 05:54AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 867 July 28, 2013 09:12AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Maxim Dounin 1004 July 29, 2013 10:58AM

Re: [PATCH] SO_REUSEPORT support for listen sockets

Sepherosa Ziehau 1397 July 30, 2013 04:24AM



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

Online Users

Guests: 157
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