Aplicación web en un VPS. ¿Cómo hacer que aparezca en un subdominio?

Aplicación web en un VPS. ¿Cómo hacer que aparezca en un subdominio?

Estoy usando un VPS personal (Ubuntu 20, Apache2) para alojar una aplicación web. Actualmente hay 2 sitios estáticos, site1.com y site2.org, ambos en funcionamiento.

Instalé una aplicación que actualmente está disponible en el puerto 8065, por ejemplo:site2.org:8065

Mi pregunta es, ¿cómo puedo configurar Apache para que la aplicación aparezca enmm.site2.org? (con el subdominio "mm").

Creé un archivo de configuración como este:

# /etc/apache2/sites-available/mm.site2.org.conf
<VirtualHost *:80>
    ServerName mm.site2.org

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


    ProxyRequests Off
    <Proxy http://localhost:8065/*>       
      Order deny,allow
      Allow from all
    </Proxy>
        
    ProxyPass / http://127.0.0.1:8065/
    ProxyPassReverse / http://127.0.0.1:8065/

    <Location />
      Order allow,deny
      Allow from all
    </Location>

</VirtualHost>

Después de configurar lo anterior, ejecuté los comandos necesarios para reiniciar los servicios de esta manera:

sudo a2ensite mm.site2.org.conf
sudo systemctl reload apache2
sudo service apache2 restart

También probé una variante de la <Proxy ...>línea en el archivo de configuración de Apache, basada en algunas fuentes diferentes, usando simplemente <Proxy *>como sugieren algunas fuentes.

Si es relevante, mi configuración de DNS consiste simplemente en dos registros A ( @y www) para cada sitio.

La salida de sudo apache2ctl -Ses:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 12.345.67.890. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:443                  is a NameVirtualHost
         default server site1.com (/etc/apache2/sites-enabled/site1.com-le-ssl.conf:2)
         port 443 namevhost site1.com (/etc/apache2/sites-enabled/site1.com-le-ssl.conf:2)
                 alias www.site1.com
         port 443 namevhost site2.org (/etc/apache2/sites-enabled/site2.org-le-ssl.conf:2)
                 alias www.site2.org
*:80                   is a NameVirtualHost
         default server 12.345.67.890 (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost 12.345.67.890 (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost site1.com (/etc/apache2/sites-enabled/site1.com.conf:1)
                 alias www.site1.com
         port 80 namevhost site2.org (/etc/apache2/sites-enabled/site2.org.conf:1)
                 alias www.site2.org
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/run/apache2/" mechanism=default 
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex ssl-stapling: using_defaults
Mutex proxy: using_defaults
Mutex ssl-cache: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

No hubo suerte para que la aplicación web apareciera en el subdominio deseado.

Respuesta1

Según lo que escribes, creo que DNS no está configurado correctamente:

Si es relevante, mi configuración de DNS consiste simplemente en dos registros A (@ y www) para cada sitio.

Debe agregar un RR DNS para un subdominio, dirección: mm.site2.org. A 12.345.67.890o cname (alias) mm.site2.org. CNAME www.site2.org.:. Para dirigir todos los subdominios a este servidor, el nombre RR puede ser un comodín: *.site2.org. A 12.345.67.890(CNAME RR probablemente también será suficiente). (Parece que esperabas que ya funcione así).

información relacionada