Nginx的返回返回GET本地IP而不是域

我使用nginx作为我的虚拟机的反向代理。 当我尝试在我的网站或phpmyadmin中validation自己的身份时,当POST来自域时,nginx会返回来自本地IP的响应!

看: Nginx返回一个本地IP而不是域名

在这里我试图validationphpmyadmin。 当我有效时,我必须刷新页面才能成功连接。

这是我的nginxconfiguration:

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进行SSLauthentication。 如果需要,我可以使用Let's Encrypt和Nginx。 Apache正在使用Phpmyadmin,以及其他虚拟机上的其他服务。

我从昨天早上在互联网上search,但我没有发现任何关于这种问题。 你知道发生了什么事吗?

实际上这跟nginx没有任何关系。

当您执行POST请求login到PHPMyAdmin时,PHPMyAdmin将发送一个302redirect到index.php页面,导致浏览器尝试从错误的地址加载页面。

因此,您必须修复PHPMyAdmin中的基本URL设置,以便它将生成正确的域名的正确的URL。

您需要添加到PHPMyAdminconfiguration的设置是:

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

该选项logging在https://docs.phpmyadmin.net/en/latest/config.html#basic-settings中 。