Надо отталкиваться от прикладных последствий. "Всплески входящих соединений" как-то влияют на работоспособность системы? Если нет - ограничивать коннекты преждевременно (ну, разве что как-то на грани здравого смысла, типа 50 запросов в секунду на пользователя).
1. Выпускаете сертификат на новом сервере (если хочется бесшовно - через DNS-challenge или запроксировав каталог .well-known/acme-challenge на новый сервер).
2. Переключаете А-запись домена на новый сервер, проверяете, что всё работает.
3. Делаете certbot delete на старом сервере.
Куча лишнего. Не нужен тут ни root_path, ни "none blocked". Хотите, чтобы запросы проходили только с определённых сайтов, оставьте в valid_referers только нужные домены. Если это те же домены, про которые конфиг - есть специальный аргумент server_names.
Написать локейшен с регулярным выражением, срабатывающим только на урлы вида *.(jpg|png|что-там-ещё-у-вас). Внутрь локейшена засунуть try_files, который в какой-то момент будет дёргать PHP-скрипт.
Проблема в разрешениях на каталог /usr/share/nginx/html/projects - они должны быть достаточны, чтобы веб-сервер мог получить список содержимого (обычно делают read + execute, например 0755).