Nginx не может логировать post как get. У вас там явно написано, что это post-запрос. И у него есть query-string (это способ передачи get-параметров), что не означает что он post.
Какой смысл в хеше, если потом надо логинить пользователя? А если тупо хеш сверять, полученный от клиента, то какой смысл вообще хешировать, если он будет выступать в роли открытого пароля?
человек между прочим дело говорит. сервер вместе с формой логина передает «соль» — случайную строку, в браузере JS берет хеш от пароля+соли и посылает его на сервер, где сервер его проверяет со своим паролем + соль (он ее должен запомнить скажем в сессии). Таким образом пароль никогда не передается в открытом виде.