Назад | Перейти на главную страницу

Обратный прокси Nginx для PHPMyAdmin возвращает 404

В моей сети два сервера:

Я хочу, чтобы прокси-сервер обрабатывал определенные запросы, например:

Я попытался настроить nginx для этого, создав следующие .conf-файлы в /etc/nginx/conf.d/:

www.conf:

server {
  listen 80;
  listen [::]:80;

  server_name www.example.com;

  location / {
    proxy_pass http://192.168.1.33/;
  }

  listen [::]:443 ssl ipv6only=on; # managed by Certbot
  listen 443 ssl; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

db.conf:

server {

  server_name db.example.com;

  location / {
    proxy_pass https://192.168.1.33/phpmyadmin/;
    proxy_redirect off;
    proxy_set_header Host $host;
  }
  listen [::]:443 ssl; # managed by Certbot
  listen 443 ssl; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/db.example.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/db.example.com/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
  if ($host = db.example.com) {
    return 301 https://$host$request_uri;
  } # managed by Certbot

  listen 80;
  listen [::]:80;

  server_name db.example.com;
    return 404; # managed by Certbot
}

Прямо сейчас, когда я использую db.example.com Меня перенаправляют на страницу входа в PHPMyAdmin. Однако проблема в том, что после входа в систему URL-адрес меняется на db.example.com/phpmyadmin/index.php и это дает 404 поговорку

Запрошенный URL /phpmyadmin/phpmyadmin/index.php не был найден на этом сервере.

Как я могу сделать возможным вход через db.example.com?

на apache убедитесь, что вы создали виртуальный хост db.domain.com, который подключается к /var/www/html/phpmyadmin и на .db conf

server {

  server_name db.domain.com;

  location / {
    proxy_pass https://192.168.1.33/;
    proxy_redirect off;
    proxy_set_header Host $host;
  }

Устанавливать $cfg['PmaAbsoluteUri'] в вашем phpMyAdmins config.inc.php:

Устанавливает здесь полный URL-адрес (с полным путем) к каталогу установки phpMyAdmin. Например. https://www.example.net/path_to_your_phpMyAdmin_directory/. Также обратите внимание, что URL-адреса на большинстве веб-серверов чувствительны к регистру (даже в Windows). Не забудьте косую черту в конце.

Начиная с версии 2.3.0, рекомендуется оставить это поле пустым. В большинстве случаев phpMyAdmin автоматически определяет правильную настройку. Пользователям переадресации портов или сложной настройки обратного прокси может потребоваться установить это.

(выделено мной)

Установив это на / должен это сделать.

$cfg['PmaAbsoluteUri'] = '/';