Ajax "POST" не работает на HTTPS/SSL Nginx
Я переместил свой магазин magento из не SSL в SSL (веб-сервер: Nginx)
Проблема: JS-скрипты сайта (функция множественного Ajax с "POST") перестали работать! Запросы в порядке, но не могут получить ответ. Заголовки ответа (501 B)
Я очень уверен, что это связано с неправильной настройкой веб-сервера Nginx. Нужно ли использовать обратный прокси-сервер для использования SSL? Если так, то как? Добрый совет.
Мой Nginx example.conf выглядит так:
server {
listen 189.xx.xx.xx:80;
server_name example.com;
root /home/example/public_html;
index index.html index.php;
return 301 https://example.com$request_uri;
}
& Мой Nginx ssl-domain.conf выглядит так:
server
{
listen 189.xx.xx.xx:443 default ssl;
server_name example.com;
root /home/example/public_html;
index index.html index.php;
ssl on;
ssl_certificate /etc/ssl/example.crt;
ssl_certificate_key /etc/ssl/example.key;
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ /index.php;
expires 30d;
}
location ~* \.(gif|jpg|jpeg|pdf|txt|css|js|png|ico|xml|xml|gz)$ {
access_log off;
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~ \.php$ {
expires off;
fastcgi_read_timeout 900s;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/conf/fastcgi_params;
}
}
1 ответ
Я наконец исправил это, проблема заключалась в том, что Nginx не передавал параметры URL.
Я решил это, добавив $args в блоке местоположения:
try_files $ uri $ uri / /www/index.php?$args;
location / {
try_files $uri $uri/ /index.php?$args;
expires 30d;
}