phpmyadmin картинки, phpmyadmin с nginx и apache

Одним из самых распространенных способов разгрузки и оптимизации сервера, обслуживающего веб-приложения является добавление к Apache, часто используемому по умолчанию, Nginx. Nginx используется как прокси — он отдает статический контент, запросы к скриптам перенаправляет на бэкенд Apache.

После установки Nginx часто встречающейся проблемой является отсутствие изображений и стилей в PHPMYADMIN.

 

Не отображаются картинки и стили в PHPMYADMIN. Как исправить

PHPMYADMIN в таком случае продолжает быть работоспособен, однако внешний вид веб-интрефейса для работы с базами данных меняется. Чтобы это исправить необходимо внести изменения в виртуальные хосты всех сайтов, работающих с сервера, добавив в них секцию, которая будет отвечать за работы с phpmyadmin.

phpmyadmin картинки, phpmyadmin с nginx и apache

mcedit /etc/nginx/sites-available/example.com

 

Добавляем следующие строки:

location ^~ /phpmyadmin/
{
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}

Добавляем симлинк

ln -s /etc/nginx/sites-availible/example.com /etc/nginx/sites-enabled/

 

Перезапускаем

nginx -s reload

 

После активации виртуального хоста и перезапуска nginx при обращении к phpmyadmin (example.com/phpmyadmin в браузере) будет происходить то же, что происходит при обработке запроса к любому сайту — статика (изображения и стили будут отдаваться фронтэнд сервером, скрипты — бэкенд сервером)

 

 

Конфигурационный файл виртуального хоста nginx целиком будет выглядеть примерно так:

 

server {

listen *:80; ## listen for ipv4
server_name example.com www.example.com;
access_log /var/log/nginx/access.log;

include /etc/nginx/static.conf;

location ^~ /phpmyadmin/
{
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}

location /
{
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt)$ {
root /var/www/web/sites/example.com/;
expires max;
}

}

 

Здесь реализована отдача статики nginx и проксирование к Apache, доступному на локальном адресе 123.0.0.1 на порт 8080