Eu tenho um servidor Ubuntu executando o Apache, que hospeda um site Wordpress, que é acessível usando HTTP. Há também o Nginx instalado que hospeda um site do Django que só é acessível usando HTTPS.
Agora, o que eu gostaria de realizar é que example.com
e www.example.com
iriam para o Wordpress hospedado pelo Apache, enquanto api.example.com
iria para o Django hospedado pelo Nginx. Isso funciona no momento, se eu tentar acessar a página principal em api.example.com
, mas há uma captura estranha: Quando tento acessar api.example.com/admin
(painel de administração do Django), a página é redirecionada para a página de login do administrador do Wordpress em www.example.com/wp-admin
. Por que isso?
Eu até tentei mudar o URL do painel de administração do Django para outra coisa. Isso por sua vez leva à página Wordpress 404 ("Opa, essa página não foi encontrada!").
Assim, parece que a parte da URL após o domínio é invadida pelo Apache, mesmo que esteja no subdomínio diferente. O que causa isso e como posso corrigi-lo?
O site do Apache é configurado assim:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/wp
<Directory /var/www/wp>
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
E o site Nginx está configurado da seguinte forma:
upstream app_server {
server unix:/tmp/gunicorn.sock fail_timeout=0;
}
server {
listen 443 ssl;
charset utf-8;
server_name api.example.com;
ssl on;
# Here be a lot of SSL configs
location / {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://app_server;
}
location /static {
root /var/www/django/static;
}
}
Por fim, meu registro DNS está configurado assim:
A example.com 1.2.3.4
CNAME api example.com
CNAME www example.com
Obrigado pela sua ajuda antecipadamente. Deixe-me saber se você precisar de mais informações.