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
,