part_os
@part_os
Сложное в простом

Не происходит смена root в nginx, почему?

Всем привет, пытаюсь настроить nginx для разделения приложения:
есть 2 директории с приложениями:
/var/www/neel/appRlLara/public;
/var/www/neel/appRlLara/legacy;

я хочу что бы по URL:
neel_rl.neel/ использовал на /var/www/neel/appRlLara/legacy;
а для всех маршрутов neel_rl.neel/appRlLara использовал в /var/www/neel/appRlLara/public;

пробовал так:
server {
    server_name neel_rl.neel;

    location /appRlLara {
        root /var/www/neel;
        try_files $uri /appRlLara/public/index.php$is_args$args;
    }

    location / {
        root /var/www/neel/appRlLara/legacy;
    }

    index index.html index.htm index.php;

     location ~ \.php$ {
         fastcgi_pass rl.php54:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
         include        fastcgi_params;
     }

    error_log /var/log/nginx/neel_error.log;
    access_log /var/log/nginx/neel_access.log;
}


сейчас рабочая конфигурация такая, но legacy код лежит прям в корне /var/www/neel;
server {
    server_name neel_rl.neel;
    root /var/www/neel;

    location /appRlLara {
        try_files $uri /appRlLara/public/index.php$is_args$args;
    }

    index index.html index.htm index.php;

    client_max_body_size 50m;

     location ~ \.php$ {
         fastcgi_pass rl.php54:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
         include        fastcgi_params;
     }

    error_log /var/log/nginx/neel_error.log;
    access_log /var/log/nginx/neel_access.log;
}


причем если вызвать просто домен neel_rl.neel/, сервер отдаёт скачать файл index.php который лежит в /var/www/neel/appRlLara/public;
как настроить что бы работало ?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@dodo512
server {
    server_name neel_rl.neel;

    root /var/www/neel/appRlLara/legacy;

    location / {
        try_files $uri /index.php$is_args$args;

        location ~ \.php$ {
            fastcgi_pass rl.php54:9000;
            fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    
    location /appRlLara {
        root /var/www/neel/appRlLara/public;

        rewrite ^/appRlLara/(.*) /$1 break;

        try_files $uri /appRlLara/index.php$is_args$args;

        location ~ \.php$ {
            rewrite ^/appRlLara/(.*) /$1 break;

            fastcgi_pass rl.php54:9000;
            fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы