我使用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中 。