0

こんにちは、以下のnginx構成を確認してください。ホームページhttp://mydomain.comにアクセスしようとすると、次のエラーが表示されます。Chrome 開発者ツールを使用してリダイレクトを見ると、http://mydomain.comがhttps://mydomain.comにリダイレクトされ、前後にリダイレクトされていることがわかります。ソースコードを見ましたが、そこにリダイレクトが見つかりません。ssl_requirement プラグインを使用しています。

どんな助けでも大歓迎です。

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

以下は私のnginx構成ファイルです

server {
    listen 80;
    server_name www.mydomain.com;
    rewrite ^/(.*) http://mydomain.com/$1 permanent;
}

server {
    listen 80;

    server_name mydomain.com;

    access_log /var/www/mydomain/current/log/access.log;
    root /var/www/mydomain/current/public;

    passenger_enabled on;
    passenger_use_global_queue on;

    location ~ /\.ht {
       deny all;
    }
}

server {
    listen 443;

    ssl on;
    ssl_certificate /home/ubuntu/ssl-cert/nopassphrase.pem;
    ssl_certificate_key /home/ubuntu/ssl-cert/nopassphrase.key;

    server_name www.mydomain.com;
    rewrite ^/(.*) http://mydomain.com/$1 permanent;
}

server {
    listen 443;

    ssl on;
    ssl_certificate /home/ubuntu/ssl-cert/nopassphrase.pem;
    ssl_certificate_key /home/ubuntu/ssl-cert/nopassphrase.key;

    server_name mydomain.com;

    access_log /var/www/mydomain/current/log/access.log;
    root /var/www/mydomain/current/public;

    location ~* \.(ico|jpg|gif|png|css|js|swf|html)$ {
      if (-f $request_filename) {
        expires max;
        break;
      }
    }
    passenger_enabled on;
    passenger_use_global_queue on;

    location ~ /\.ht {
       deny all;
    }
}
4

1 に答える 1

1

あなたの設定はそれ自体にリダイレクトしています。

http と https を同じサーバー ブロックに入れることができます。証明書は、自己署名証明書ではないチェーン証明書である必要があります。

server {
    listen 80;
    server_name www.mydomain.com;
    rewrite ^/(.*) http://mydomain.com/$1 permanent;
}

server {
    listen 80;
    listen 443 ssl;
    server_name mydomain.com;
    ssl_certificate /home/ubuntu/ssl-cert/nopassphrase.pem;
    ssl_certificate_key /home/ubuntu/ssl-cert/nopassphrase.key;

    location ~* \.(ico|jpg|gif|png|css|js|swf|html)$ {
        if (-f $request_filename) {
            expires max;
            break;
        }
    }

    access_log /var/www/mydomain/current/log/access.log;
    root /var/www/mydomain/current/public;

    passenger_enabled on;
    passenger_use_global_queue on;

    location ~ /\.ht {
        deny all;
    }
}
于 2012-10-12T02:57:48.787 に答える