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;
}
}
ようやく修正しましたが、問題はNginxがURLパラメータを渡さないことでした。
ロケーションブロックに$ argsを追加することで解決しました:
try_files $ uri $ uri//www/index.php?$args;
location / {
try_files $uri $uri/ /index.php?$args;
expires 30d;
}