Назад | Перейти на главную страницу

SSL, nginx и Drupal - кошмар

Я установил ssl-сертификат на свой сервер, много читал и делал все разные предложенные вещи, но мне кажется, что переменная $ _SERVER ['HTTPS'] не отображается. Кто-нибудь, пожалуйста, помогите. Вот мой конфиг:

Сервер: Linode Ubuntu 8.02LTS nginx - последний создал виртуальный хост:

server {
            listen   443;
            server_name  www.buzzonstage.com;
            rewrite ^/(.*) https://buzzonstage.com/$1 permanent;
       }

server {
            listen   443;
            server_name buzzonstage.com;
            ssl on;
            ssl_certificate /usr/local/nginx/conf/buzzonstage.com.pem;
            ssl_certificate_key /usr/local/nginx/conf/buzzonstage.com.key;
            access_log /home/maksimize/public_html/buzzonstage.com/log/access.log;
            error_log /home/maksimize/public_html/buzzonstage.com/log/error.log;
            location /  {
                        root   /home/maksimize/public_html/buzzonstage.com/public/;
                        index  index.php index.html;
                        if (!-e $request_filename)
                        {
                        rewrite ^/(.*)$ /index.php?q=$1 last;
                        }
                        }
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            location ~ \.php$
                    {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include /usr/local/nginx/conf/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /home/maksimize/public_html/buzzonstage.com/public/$fastcgi_script_name;
            fastcgi_param HTTPS on;
            }
       }

server {
            listen   80;
            server_name  www.buzzonstage.com;
            rewrite ^/(.*) http://buzzonstage.com/$1 permanent;
       }
server {
            listen   80;
            server_name buzzonstage.com;
            access_log /home/maksimize/public_html/buzzonstage.com/log/access.log;
            error_log /home/maksimize/public_html/buzzonstage.com/log/error.log;
            location /  {
                        root   /home/maksimize/public_html/buzzonstage.com/public/;
                        index  index.php index.html;
                        if (!-e $request_filename)
                        {
                        rewrite ^/(.*)$ /index.php?q=$1 last;
                        }
                        }
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            location ~ \.php$
                    {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include /usr/local/nginx/conf/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /home/maksimize/public_html/buzzonstage.com/public/$fastcgi_script_name;

Подтверждение от digicert возвращается точно, но я получаю сообщение о том, что некоторая информация может быть небезопасной - я понимаю, что это так из-за различных ссылок на незащищенные страницы на сайте. Phpinfo показывает зеленый https;

Но для работы определенного модуля drupal - securepages - мне нужно иметь возможность отображать эту переменную в массиве $ _SERVER.

Я не понял последнюю часть вашего вопроса, вам нужно, что показывать как в $_SERVER массив?

В любом случае, SSL запускается до того, как произойдет какой-либо обмен хостом, поэтому у вас может быть только один IP-адрес HTTPS. Ваша конфигурация прямо сейчас делает все запросы для обработки сервером по умолчанию.

Взгляните на это краткое руководство и это решит большинство ваших сомнений относительно SSL и Nginx.