Primeiro de tudo. Apache e Nginx são servidores Web - não servidores DNS. Eles não resolvem nada. Esta questão não tem nada a ver com o DNS, mas tudo com o modo como os servidores da Web lidam com as solicitações.
I need app1.mydomain.com to be resolved by apache and app2.mydomain.com to be resolved by nginx. Both on port 80. Is it possible?
Não, isso não é possível. Dois aplicativos não podem ouvir a mesma porta. Você pode resolver isso de duas maneiras:
- Faça com que o Apache ouça na porta 80 e solicite solicitações de app2.mydomain.com para nginx, ouça em uma porta diferente e atenda app1.mydomain.com diretamente.
- Em frente. Tem um proxy nginx para o Apache.
Ou - torne os dois hospedados pelo mesmo servidor da web. O Apache e o nginx são, em muitos casos, intercambiáveis no nível técnico, portanto, da perspectiva dos aplicativos, isso não deve realmente importar. Em termos de gestão, são bastante diferentes.
Eu notei que você roda o nginx na porta 8080, então eu suponho que você queira usar o apache como proxy. Em seguida, crie um novo host virtual para o apache, por exemplo /etc/apache2-sites-available/app2.mydomain.com.conf
:
<VirtualHost *:80>
DocumentRoot "/var/www"
ErrorLog "logs/app2-error_log"
CustomLog "logs/app2-access_log" common
ServerName app2.mydomain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
Proxypass / http://localhost:8080/
</VirtualHost>
Em seguida, execute sudo a2enmod proxy_http; sudo a2ensite app2.mydomain.com; sudo service apache2 reload
.
Isso habilitará mod_proxy, mod_proxy_http e fará o apache encaminhar quaisquer solicitações para o aplicativo VirtualHost2.mydomain.com para nginx, que de acordo com sua configuração está sendo executado na porta 8080.
Eu não testei esta configuração, então alguns ajustes podem ser necessários.
Como um sidenote: por que você precisa do nginx? De acordo com a configuração do nginx, ele apenas procura uma requisição para algum outro servidor rodando na porta 2368. Você pode fazer proxy diretamente usando o apache ...
A documentação do mod_proxy pode ser útil ao ajustá-lo.