Как настроить постоянные ссылки в Wordpress на nginx?
У вас не конфиг, а какой-то винегрет...return 301 https://$server_name$request_uri;
В рамках listen :80 вы редиректите на https?!location / {
    try_files $uri $uri/ /index.php?$args;
}
Этот фрагмент у вас вложен в такой жеlocation / {
    ...
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    ...
}
Что это за чушь? В этом конфиге даже разбираться не хочется.
Вот базовый конфиг, который работает и отвечает за пермалинки в том числе:server {
        # Слушаем 80й порт
        listen 80; 
        # Обслуживаем доменное имя, www тут же слушать не надо - будут дубликаты контента, печаль для SEO
        server_name example.com;
        # Корневая директория проекта
        root /var/www/example.com/httpdocs;

        # Индексы
        index index.php index.html;

        # Обработка запросов
        # $uri - существует ли конкретный файл
        # $uri/ - существует ли директория
        # /index.php?$args - если это не запрос на существующий файл или директорию, то перебрасываем на роутер WordPress (это и есть то, что надо для пермалинков)
        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        # Обрабатываем PHP
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                fastcgi_pass unix:/var/run/php5-fpm.sock; # или php7.0-fpm.sock
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

        # Все остальное

        # Запрещаем доступ к .htaccess
        location ~ /\.ht {
                deny all;
        }

        # Просим кешировать статику на Х дней, не писать в логи
        location ~*
        ^.+\.(js|css|swf|xml|txt|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
                access_log off;
                log_not_found off;
                expires 30d;
        }

}

# Отдельно слушаем домен с www и редиректим на основной
server {
        # Слушаем 80й порт
        listen 80; 
        # Обслуживаем доменное имя c www
        server_name www.example.com;
        # Отправляем запрос на основной домен
        return 301 $scheme://example.com$request_uri;
}
Снабдил комментами для ясности.
Что касается протокола HTTPS, то во-первых, его слушать надо на отдельном порту, а во-вторых, там еще SSL-сертификат надо подключать.
Игорь, сделал конфиг как вы описали, столкнулся с непонятной проблемой. У меня VPS на Ubuntu, сервер nginx, на одном сайте установил Wordpress и WooCommerce, ссылки по названию страниц и записей работают, но при нажатии на кнопку корзины, начинает грузится какой то файл, если меня настройки постоянных ссылок на произвольный вид, начинает работать кнопка,  как сделать что бы она работала при ссылках по названию записей? сайт beton716.ru