Aplicativo da web em um VPS. Como fazer com que apareça em um subdomínio?

Aplicativo da web em um VPS. Como fazer com que apareça em um subdomínio?

Estou usando um VPS pessoal (Ubuntu 20, Apache2) para hospedar um aplicativo web. Atualmente existem 2 sites estáticos, site1.com e site2.org, ambos funcionando.

Instalei um aplicativo que está disponível atualmente na porta 8065, por exemplo:site2.org:8065

Minha pergunta é: como posso configurar o Apache para fazer o aplicativo aparecer emmm.site2.org? (com o subdomínio "mm").

Criei um arquivo de configuração assim:

# /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>

Depois de configurar o acima, executei os comandos necessários para reiniciar os serviços assim:

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

Também tentei uma variante da <Proxy ...>linha no arquivo conf do Apache, com base em algumas fontes diferentes, usando simplesmente <Proxy *>como algumas fontes sugerem.

Se for relevante, minhas configurações de DNS consistem simplesmente em dois registros A ( @e www) para cada site.

A saída de sudo apache2ctl -Sé:

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

Não tive sorte em fazer com que o webapp aparecesse no subdomínio desejado.

Responder1

Com base no que você escreve, acho que o DNS não está configurado corretamente:

Se for relevante, minhas configurações de DNS consistem simplesmente em dois registros A (@ e www) para cada site.

Você deve adicionar um RR DNS para um subdomínio, endereço: mm.site2.org. A 12.345.67.890ou cname (alias): mm.site2.org. CNAME www.site2.org.. Para direcionar todos os subdomínios para este servidor, o nome RR pode ser um curinga: *.site2.org. A 12.345.67.890(CNAME RR provavelmente também será suficiente). (Parece que você esperava que já funcionasse assim.)

informação relacionada