Рейтинг:0

Не удается получить доступ к панели управления Wordpress с обратным прокси-сервером nginx

флаг sd

Я столкнулся с небольшой проблемой при настройке WordPress с Nginx в качестве обратного прокси-сервера для серверной части Apache. Все страницы загружаются, но я получаю сообщение об ошибке, когда пытаюсь войти в панель управления wp-admin. Ошибка Извините, у вас нет доступа к этой странице.

Я проверил свои права доступа к файлам, префикс базы данных, .htaccess и даже привилегии администратора usermeta в db, все кажется идеальным. Сайт работал отлично, пока я не настроил обратный прокси-сервер nginx.

Вот мой конфигурация apache2:

   <VirtualHost *:8081>
       DocumentRoot "/mnt/NAS/wp_data/wordpress/"
       ServerName my_site_url
       ServerAlias www.my_site_url
    
    <Directory "/mnt/NAS/wp_data/wordpress/">
       Options MultiViews FollowSymlinks
       AllowOverride All
       Order allow,deny
       Allow from all
    </Directory>
    
   </VirtualHost>

Вот мой апач порты.конф:

   #Слушай 80
   Слушай 8081

Вот мой конфиг нгинкс:

сервер {
        слушать 80;
        слушать [::]:80;

        имя_сервера мой_сайт_url;

        переписать ^ https://$server_name$request_uri? постоянный;

}

сервер {
        слушать 443 ssl;
        слушать [::]:443 ssl;

        имя_сервера www.my_site_url my_site_url;

        место расположения / {
                proxy_set_header Хост $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-Proto $ схема;
                прокси_пасс http://127.0.0.1:8081;
        }

        ssl_certificate /var/www/mycert/certificate.pem;
        ssl_certificate_key /var/www/mycert/private.key;
}

Последнее, но не менее важное, мое wp-config.php по умолчанию, и я ничего не добавлял, кроме

если ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
если ( 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
$_SERVER['HTTPS'] = 'включено';
}
}
если ( isset($_SERVER['HTTP_X_REAL_IP'] )) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}
Mrwut avatar
флаг ng
Без ssl работает? Также попробуйте поставить `определить('FORCE_SSL_ADMIN', правда);` В начале файла конфигурации и посмотрите, поможет ли это.
флаг sd
Пробовал добавлять, ничего не изменилось. Кстати, я использую пользовательскую папку, в которой у меня есть каталог wordpress, как показано выше. Я не использую /var/www/ или /var/www/html, я использую директорию /mnt/NAS/wp_data/wordpress. Я добавил это в apache.conf, а также добавил в www-data:www-data. Технически это не должно быть проблемой. Я не могу войти в админ-панель wp. Пишет, что у вас нет доступа к этому. Однако я могу использовать ту же папку и те же файлы, удалив прокси-сервер nginx и просто используя обычный apache, как и раньше. Любые дополнительные рекомендации будут высоко оценены. Спасибо!
Mrwut avatar
флаг ng
Я хотел добавить его в файл wp-config.php. Если вы добавили сюда, а результат остался прежним, вы можете попробовать найти строку типа `define('DISALLOW_FILE_MODS',true);` в файле wp-config.php, и если она есть, вы можете попробовать удалите его и посмотрите, поможет ли это.
флаг sd
Неудачно. Должен ли я просто попытаться использовать только nginx для wp вместо обратного прокси? Если да, не могли бы вы предоставить мне пример конфигурации с ssl для ссылки?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.