Mehrere Subdomains zum Anmelden bei phpMyAdmin mit Nginx

Mehrere Subdomains zum Anmelden bei phpMyAdmin mit Nginx

Ich versuche, zwei separaten Subdomänen von zwei verschiedenen Websites Zugriff auf die Anmeldung beim selben phpMyAdmin zu gewähren.

Ich bin nicht sicher, wie ich die Datei einrichten soll, phpmyadmin.confdamit Nginx weiß, wie beide Subdomänen an die phpMyAdmin-Anmeldeseite weitergeleitet werden.

So sieht mein Nginx- server{}Block aus./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;
 }
}

Ich frage mich also, wie ich sowohl die pma.example.comSubdomäne als auch die pma.example.netWeiterleitung zur Hauptanmeldeseite von phpMyAdmin haben kann.

Antwort1

Das ist nichtHTTP-Umleitung, aber Nginx kann dieselbe Webanwendung von mehreren Hostnamen oder Pfaden aus bedienen. Dieserver_namehat

Syntax: server_name name ...;

in Ihrem Fall:

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

...aber warum um Himmels Willen sollten Sie den Zugriff auf phpMyAdmin über eine unverschlüsselte Verbindung anbieten?! Daher würde ich stattdessen vorschlagen, einen gemeinsamen Pfad zu verwenden. Auf diese Weise müssen Sie sich keine Sorgen machen, dass jede Domäne ein zusätzliches Zertifikat oder SAN für die Subdomäne hat. Es ist auch einfach, es als globalen Alias ​​zu konfigurieren.

Sie könnten beispielsweise folgen einemTutorial von Cloudbookletdie vorschlagen, einen Snippet hinzuzufügen in /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/;
    }
}

Passen Sie es an Ihre Umgebung an: PHP-FPM-Version usw. Danach können Sie einfach include /etc/nginx/snippets/phpmyadmin.conf;jeden server {}Block ergänzen.

verwandte Informationen