web-dev-qa-db-ja.com

Ajax "POST"がHTTPS / SSL Nginxで機能しない

Magentoストアを非SSLからSSLに移動しました(ウェブサーバー:Nginx)

問題:サイトのJSスクリプト(「POST」を使用した複数のAjax関数)が機能しなくなった!リクエストは問題ありませんが、応答を受け取ることができません。応答ヘッダー(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;
    }

}
2
perlware

ようやく修正しましたが、問題はNginxがURLパラメータを渡さないことでした。

ロケーションブロックに$ argsを追加することで解決しました:

try_files $ uri $ uri//www/index.php?$args;

location / {
    try_files $uri $uri/ /index.php?$args;
    expires 30d;  
}
1
perlware