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

Nginx return return GET local IP вместо домена

Я использую nginx в качестве обратного прокси для своих виртуальных машин. Когда я пытаюсь аутентифицироваться на своем веб-сайте или в phpmyadmin, nginx возвращает ответ с локального IP-адреса, когда POST отправляется из домена!

Смотреть: Nginx возвращает локальный IP-адрес вместо доменного имени

Здесь я пытаюсь пройти аутентификацию на phpmyadmin. Когда я действую, мне нужно обновить страницу для успешного подключения.

Это моя конфигурация nginx:

server {
    listen 80;
    server_name     mysql.mydomain.com;
    location / {
            proxy_pass      http://10.0.2.103;
    }
}

Мой файл по умолчанию:

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

        location / {
                try_files $uri $uri/ =404;
                proxy_set_header    Host                $http_host;
                proxy_set_header    X-Real-IP           $remote_addr;
#               proxy_set_header    X-Forwarded-Ssl     on;
                proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
                fastcgi_param REMOTE_ADDR $http_x_real_ip;

                proxy_set_header    X-Forwarded-Proto   $scheme;
                proxy_set_header    X-Frame-Options     SAMEORIGIN;
        }

        # Pour let's encrypt
        location '/.well-known/acme-challenge' {
                default_type "text/plain";
                root         /root/certbot-auto/;
        }

        # On interdit tout autre appel
        location ~ /\. {
                deny all; access_log off; log_not_found off;
        }
}

Я использую CloudFlare для сертификации SSL. При необходимости я могу использовать Let's Encrypt с Nginx. Apache использует Phpmyadmin и другие службы на других виртуальных машинах.

Я ищу в Интернете со вчерашнего утра, но не нашел ничего об этой проблеме. Вы знаете, что происходит не так?

На самом деле это не имеет ничего общего с nginx.

Когда вы выполняете POST-запрос для входа в PHPMyAdmin, PHPMyAdmin отправляет обратно 302 редирект на index.php страница, из-за которой ваш браузер пытается загрузить страницу с неправильного адреса.

Итак, вам нужно исправить настройку базового URL-адреса в PHPMyAdmin, чтобы он генерировал правильные URL-адреса с правильным доменным именем.

Параметр, который вам нужно добавить в конфигурацию PHPMyAdmin:

$cfg['PmaAbsoluteUri'] = 'https://mysql.example.com/';

Эта опция задокументирована в https://docs.phpmyadmin.net/en/latest/config.html#basic-settings.