nginx вызывает проблемы с доступом к Adminer SQL web administrator

В nginx новичок от слова чайник.
Задача - поднять nginx, по пути /admin перенаправлять на веб-админку (adminer). Adminer - PHP-файл, расположен в ПапкаПроекта/admin/adminer.php. PHP сервер поднимается в ней же по адресу 127.0.0.1:82, Adminer по этом адресу работает без пролем.
nginx работает на localhost:80 (там кэширующий сервер, который перебрасывает на localhost:81, который уже распределяет запросы по пунктам назначений). Запрос localhost:80/admin/adminer.php нормально переадресует на страницу Adminer, однако при попытке авторизации, вне зависимости от правильности введенных данных, возвращается ошибка 403 (нет доступа), при этом никаких ошибок (по типу Login failed for user 'Admin', как при неверном пароле) adminer не выводит. Попытка логина

Не понимаю, в чем может быть проблема.

Код конфигурационного файла nginx:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http
{
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    
    #include /etc/nginx/conf.d/*.conf;
    #include /etc/nginx/sites-enabled/*;    
    
    server
    {
        listen localhost:80;
        
        location /admin/
        {
            proxy_pass http://localhost:82/;
            proxy_no_cache 1;
        }
    }
    

    ##
    # Basic Settings
    ##

    #sendfile on;
    #tcp_nopush on;
    #tcp_nodelay on;
    #keepalive_timeout 65;
    #types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    #include /etc/nginx/mime.types;
    #default_type application/octet-stream;

    ##
    # SSL Settings
    ##

    #ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
    #ssl_prefer_server_ciphers on;

    ##
    # Logging Settings
    ##

    ##
    # Gzip Settings
    ##

    gzip on;

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##
}

PHP Сервер поднимаю так: введите сюда описание изображения

Обращение напрямую работает нормально: введите сюда описание изображения

Скрины логов:
error.log:
введите сюда описание изображения

access.log:
введите сюда описание изображения

Лог php сервера:
введите сюда описание изображения

P.S. Я удалил кэширующий сервер и попробовал сразу с :80 пересылать на 82, но эффекта это не дало. Я обновил код nginx.conf в этом вопросе.


Ответы (1 шт):

Автор решения: Andrey Mihalev

При первом запросе localhost/admin/ происходит проксирование запроса на localhost:82/adminer.php, но в дальнейшем любая из ссылок/действий на странице вызывает обращение к адресу на бэке localhost:82/admin/adminer.php, и конечно на backend такой страницы не существует, поэтому возникает ошибка 403.

Как исправить?

Нужно запустить сервер php на директорию выше (не проваливаясь в папку admin)

И в конфиге nginx Заменить строку:

proxy_pass http://localhost:82/;

на

proxy_pass http://localhost:82;
→ Ссылка