Я использую 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.