phpMyAdmin carga increíblemente lento a través del proxy inverso nginx

phpMyAdmin carga increíblemente lento a través del proxy inverso nginx

Así que tengo un Synology NAS en casa con algunos servicios en ejecución a los que necesito que se pueda acceder desde la WWW, pero es comprensible que no quiera abrir puertos en la IP de mi hogar a Internet (especialmente porque los servicios externos necesitan acceder a mi servidor en el puerto 443), así que decidí crear una instancia Always Free (conectividad de 0,48 Gbps, 1 CPU, 1 GB de RAM) en Oracle Cloud con Ubuntu 22.04 instalado e instalar nginx en ella, para acceder a estos servicios desde fuera de mi red doméstica. Luego, abrí el puerto de mi enrutador solo a la dirección IP de la instancia de la nube.

Tengo experiencia administrando servidores Linux a través de SSH, pero esta es la primera vez que juego con nginx en general, y mucho menos con servidores proxy inversos.

Durante las pruebas, dejé el puerto abierto a todas las IP, para poder probar el tráfico entrante a mi laboratorio tanto directamente como mediante proxy inverso. Aquí es donde estoy empezando a tener problemas:

  • cuando accedo a phpMyAdmin ejecutándose directamente en el servidor ascendente (solo consultohttps://pma.upstream.midominio.xyz:puertoabiertoen mi navegador), se carga instantáneamente, incluso con el caché borrado
  • cuando accedo a phpMyAdmin que se ejecuta en el servidor ascendente a través del proxy inverso (consultandohttps://pma.reverseproxy.midominio.xyz:443en mi navegador), tarda más de un minuto en cargarse después de borrar el caché del navegador. Cuando el caché ya está cargado, no es tan lento (quizás 10 segundos), pero sigue siendo mucho más lento que consultar directamente al servidor ascendente (lo que no será posible cuando cierro el puerto a Internet más amplio). Habiendo revisado la consola del navegador, lo que lleva más tiempo son los pequeños PNG que phpMyAdmin usa como íconos (cada imagen tiene un máximo de cientos de bytes) y archivos CSS/JS más grandes (un par de decenas de KB).

Cuando accedo a un sitio diferente en el servidor ascendente a través de un proxy inverso, no parece tener estos problemas, aunque es cierto que no sirve tantos archivos JS y PNG pequeños, en su mayoría solo texto.

A continuación se muestra la configuración del bloque de mi servidor nginx. ¿Alguien tiene alguna idea de dónde podría estar yendo mal? Cualquier consejo sería muy apreciado.

server {
    listen 443 ssl http2;
    server_name pma.reverseproxy.mydomain.xyz;

    sendfile on;
    tcp_nodelay on;
    tcp_nopush on;

    ssl_certificate /etc/letsencrypt/live/reverseproxy.mydomain.xyz/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/reverseproxy.mydomain.xyz/privkey.pem;

    resolver 1.1.1.1 8.8.8.8 valid=300s;
    set $backend_server https://pma.upstream.mydomain.xyz:openedPort;

    location / {
        proxy_pass $backend_server;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header Host pma.upstream.mydomain.xyz;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_buffer_size 128k;
        proxy_buffers 8 256k;
        proxy_busy_buffers_size 256k;

        gzip on;
        gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        proxy_read_timeout 20s;
    }
}

información relacionada