Múltiples subdominios para iniciar sesión en phpMyAdmin con Nginx

Múltiples subdominios para iniciar sesión en phpMyAdmin con Nginx

Estoy intentando que 2 subdominios separados de 2 sitios web diferentes tengan acceso para iniciar sesión en el mismo phpMyAdmin.

No estoy seguro de cómo configurar el phpmyadmin.confarchivo para que Nginx sepa cómo reenviar ambos subdominios a la página de inicio de sesión de phpMyAdmin.

Así es como se ve mi server{}bloque 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;
 }
}

Entonces, me pregunto cómo puedo tener tanto el pma.example.comsubdominio como la pma.example.netredirección a la página principal de inicio de sesión de phpMyAdmin.

Respuesta1

Eso no esredirección HTTP, pero Nginx puede servir la misma aplicación web desde múltiples nombres de host o rutas. Elserver_nametiene

Sintaxis: server_name name ...;

en tu caso:

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

...pero ¿por qué ofrecerías acceso a phpMyAdmin en una conexión no cifrada? Por lo tanto, sugeriría utilizar una ruta común. De esta manera, no tendrá que preocuparse de que cada dominio tenga un certificado o SAN adicional para el subdominio. También es fácil de configurar como alias global.

Podrías seguir, por ejemplo, untutorial de Cloudbookletque sugieren agregar un fragmento en /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/;
    }
}

Modifíquelo para que coincida con su entorno: versión PHP FPM, etc. Después de eso, simplemente puede agregarlo include /etc/nginx/snippets/phpmyadmin.conf;a cada server {}bloque.

información relacionada