Vários subdomínios para fazer login no phpMyAdmin com Nginx

Vários subdomínios para fazer login no phpMyAdmin com Nginx

Estou tentando fazer com que 2 subdomínios separados de 2 sites diferentes tenham acesso para fazer login no mesmo phpMyAdmin.

Não tenho certeza de como configurar o phpmyadmin.confarquivo para que o Nginx saiba como encaminhar os dois subdomínios para a página de login do phpMyAdmin.

Esta é a aparência do meu server{}bloco Nginx./etc/nginx/conf.d/phpmyadmin.conf

server {
listen 80;
listen [::]:80;
server_name pma.example.com;
root /usr/share/phpmyadmin/;
index index.php index.html index.htm index.nginx-debian.html;

access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;

location / {
try_files $uri $uri/ /index.php;
 }

location ~ ^/(doc|sql|setup)/ {
deny all;
 }

location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
 }

location ~ /\.ht {
deny all;
 }
}

Então, estou me perguntando como posso ter o pma.example.comsubdomínio e o pma.example.netredirecionamento para a página principal de login do phpMyAdmin.

Responder1

Isso não éRedirecionamento HTTP, mas o Nginx pode servir o mesmo aplicativo da web a partir de vários nomes de host ou caminhos. Oserver_nametem

Sintaxe: server_name name ...;

no seu caso:

server_name pma.example.com pma.example.net;

...mas por que você ofereceria acesso ao phpMyAdmin em uma conexão não criptografada?! Portanto, eu sugeriria usar um caminho comum. Dessa forma, você não precisa se preocupar com o fato de cada domínio ter um certificado adicional ou SAN para o subdomínio. Também é fácil de configurar como um alias global.

Você poderia seguir, por exemplo, umtutorial do Cloudbookletque sugerem adicionar um snippet em /etc/nginx/snippets/phpmyadmin.conf:

location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    location ~ ^/phpmyadmin/(.+\.php)$ {
        try_files $uri =404;
        root /usr/share/;
        fastcgi_pass unix:/run/php/php8.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

    location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
        root /usr/share/;
    }
}

Modifique-o para corresponder ao seu ambiente: versão PHP FPM etc. Depois disso, você pode simplesmente adicionar include /etc/nginx/snippets/phpmyadmin.conf;a cada server {}bloco.

informação relacionada