nginx/php-fpm - ошибка 405 при отправке электронной почты контактной формы

У меня есть небольшая VPS Ubuntu 16.04, которая запускает nginx/php-fpm для запуска сайта Wordpress и запускает SMTP-сервер через Postfix/Saslauthd. Мой почтовый сервер прекрасно работает при отправке и получении почты, и у меня Wordpress настроен на использование SMTP вместо php mail() через плагин Postman, и это прекрасно работает.

Тем не менее, при попытке отправить контактную форму по электронной почте через Wordpress, я получаю сообщение об ошибке 405 Не разрешено. Я попробовал несколько разных плагинов для контактной формы (пиратские формы, контактная форма электронной почты) и все еще получил тот же результат. Я также отключил Postman, чтобы заставить Wordpress использовать php mail(), но все равно получил 405.

Отладочные журналы Nginx здесь Конфигурация Nginx здесь.

РЕДАКТИРОВАТЬ: URL, который я пытаюсь опубликовать на это https://example.com/contact/

Журнал доступа Nginx показывает это:

xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:07 -0400] "GET /favicon.ico HTTP/2.0" 200 524 "https://example.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"
xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:08 -0400] "GET /contact/ HTTP/2.0" 200 6090 "https://example.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"
xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:09 -0400] "GET /favicon.ico HTTP/2.0" 200 524 "https://example.com/contact/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"
xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:22 -0400] "POST /contact/ HTTP/2.0" 405 626 "https://example.com/contact/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"
xxx.xxx.xxx.xx  - - [09/Oct/2016:20:10:22 -0400] "GET /favicon.ico HTTP/2.0" 200 524 "https://example.com/contact/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/53.0.2785.143 Chrome/53.0.2785.143 Safari/537.36"

Не получить ничего в error.log.

1 ответ

Решение

Вы получаете ошибку 405, потому что вы сначала передаете все запросы в memcached, но он может обрабатывать только запросы GET (и HEAD). Следовательно, этот восходящий поток возвращает метод 405 Not Allowed. Вы должны на самом деле справиться с этим, но в данный момент вы игнорируете это. Я думаю, что самый простой способ сделать это - добавить 405 в список ошибок, которые вы обрабатываете в error_page,

Другие вопросы по тегам