I have the following nginx configuration fragment:
server {
   listen 80;
   server_name mydomain.io;
   root /srv/www/domains/mydomain.io;
   index index         
        According to https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#server-name-if, you should use:
server {
  server_name www.example.com;
  return 301 $scheme://example.com$request_uri;
}
server {
  server_name example.com;
  # [...]
}
                                                                        On the first question - simply add both domains:
server_name mydomain.io www.mydomain.io;
For the second, you'll need this simple redirect:
server {
      listen 80;
      server_name www.mydomain.io mydomain.io;
      if ($host = 'www.mydomain.io' ) {
         rewrite  ^/(.*)$  http://mydomain.io/$1  permanent;
      }
                                                                        server {
    listen 80;
    server_name www.mydomain.io;
    return 301 https://$host$request_uri;
}
server {
    listen 80;
    server_name mydomain.io;
    ...
}
                                                                        I believe it's better to add two seperate server blocks to avoid unnecessary checking by the if block. I also use the $scheme variable so that HTTPS requests will not be redirected to their insecure counterparts.
server {
    listen 80;
    server_name www.mydomain.io;
    rewrite ^ $scheme://mydomain.io$uri permanent;
}
server {
    listen 80;
    server_name mydomain.io;
    # your normal server block definitions here
}
                                                                        Another way to code it :
if ($http_host ~* "^www\.(.+)$"){
    rewrite ^(.*)$ http://%1$request_uri redirect;
}
It works even with multiple domain names on the same code.
For a generic approach, without having to mention any specific domain or protocol, I have used this quite successfully:
  # rewrite to remove www.
  if ( $host ~ ^www\.(.+)$ ) {
    set $without_www $1;
    rewrite ^ $scheme://$without_www$uri permanent;
  }
This will redirect: https://www.api.example.com/person/123?q=45 to https://api.example.com/person/123?q=45