Как исправить слишком много перенаправлений yii 1.1.21 с помощью nginx - PullRequest
1 голос
/ 14 мая 2019

У меня есть сайт yii 1.1.21 в iis 8.5, но мне нужно перейти на nginx, я новичок в nginx, поэтому я попытался использовать это руководство:

(https://www.yiiframework.com/doc/guide/1.1/en/quickstart.apache-nginx-config)

Все нормально на главной странице, но когда я перехожу на мой сайт, почти все время появляется ошибка "ERR_TOO_MANY_REDIRECTS". Я пробовал много решений, но ничего не работает.

Я разместил свой файл по умолчанию ниже для получения дополнительной информации:

server {
    listen 443;
    ssl on;
    ssl_certificate /etc/ssl/certs/key.crt;        # path to your cacert.pem
    ssl_certificate_key /etc/ssl/private/<sermername>.key;    # path to your privkey.pem
    server_name <server name>;
    server_tokens off;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-R$

    root /var/www/html;
    index index.php

    proxy_pass         http://127.0.0.1:8000;
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
    proxy_set_header   X-Forwarded-Proto https;

    proxy_read_timeout  1200s;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header Content-Security-Policy "default-src https: data: 'unsafe-inline' 'unsafe-eval'";
    add_header Referrer-Policy no-referrer;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options SAMEORIGIN always;
    add_header X-XSS-Protection "1; mode=block" always;
#   add_header Content-Security-Policy-Report-Only

    access_log /var/log/nginx/default.access.log combined;
    error_log  /var/log/nginx/default.error.log warn;

    set $yii_bootstrap "index.php";
    charset utf-8;

    location / {
        index  index.html $yii_bootstrap;
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }

    location ~ ^/(protected|framework|themes/\w+/views) {
        deny  all;
    }

    #avoid processing of calls to unexisting static files by yii
     location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        try_files $uri =404;
    }



    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;

        fastcgi_split_path_info  ^(.+\.php)(.*)$;
        #let yii catch the calls to unexising PHP files
        set $fsn /$yii_bootstrap;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }

#        fastcgi_pass   127.0.0.1:9000;
        include fastcgi_params;
#        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

        #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
        fastcgi_param  PATH_INFO        $fastcgi_path_info;

    }

# prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

}

1 Ответ

1 голос
/ 14 мая 2019

После двух дней, когда я ломал голову, я нашел решение, мой сайт работает с балансировкой нагрузки и сеансами yii не работают хорошо с несколькими серверами по умолчанию.Моим решением было включить CDbHttpSession для сохранения сессии в БД.Дополнительные ссылки: Балансировка нагрузки с помощью сеансов Yii Сеанс Yii не работает на нескольких серверах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...