У меня есть сервер Nginx с установленными на нем uwsgi и Wordpress. Итак, проблема в том, что всякий раз, когда я пытаюсь отправить запрос POST в приложение uwsgi, он терпит неудачу с ошибкой 405, но этот метод разрешен на сервере, поэтому я не знаю, почему это происходит. Вот файл nginx .conf:
server {
listen 80;
server_name hrspot.me;
return 301 https://hrspot.me$request_uri;
}
server {
listen 443 ssl;
server_name hrspot.me;
index index.php index.html index.htm;
root /var/www/html;
ssl_certificate /etc/ssl/bundle.crt;
ssl_certificate_key /etc/ssl/www.hrspot.me.key;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
client_max_body_size 1024m;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off;
}
location = /robots.txt {
log_not_found off;
}
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
location /api {
include uwsgi_params;
uwsgi_pass hrspotme_server:8080;
}
}
А вот метод в flask приложении:
...
@account.route('/api/register', methods=['POST'])
def route_api_register():
form = RegisterForm()
return api_register(form)
...
Как видите, это метод POST. UWSGI почему-то воспринимает это как GET-запрос А вот лог этого метода от UWSGI:
[pid: 10|app: 0|req: 2/3] ip_address () {44 vars in 686 bytes} [Fri Jul 10 13:01:55 2020] GET /api/register => generated 178 bytes in 17 msecs (HTTP/1.1 405) 3 headers in 118 bytes (1 switches on core 1)
Так я понимаю, что какая-то проблема с настройками.
КАК СДЕЛАТЬ ЗАПРОС: запрос
ЖУРНАЛЫ, КОГДА Я ПЫТАЮСЬ ОТПРАВИТЬ ЗАПРОС НА / api / auth:
ip - - [10/Jul/2020:13:51:06 +0000] "POST /api/auth HTTP/1.1" 301 169 "-" "PostmanRuntime/7.26.1" "-"
ip - - [10/Jul/2020:13:51:06 +0000] "GET /api/auth HTTP/1.1" 405 178 "http://hrspot.me/api/auth" "PostmanRuntime/7.26.1"
UPD: Я попытался указать https перед URL-адресом в почтальоне, и это сработало, поэтому кажется ошибкой, что когда я изначально вызываю http-запрос, он неправильно перенаправляет его на https-запрос, изменяя метод с POST на GET. запрос