Eu tenho um apache que hospeda sites.000-default.confparawww.domínio1.com
outro édomínio2.confparawww.domínio2.com
e tem uma configuração como esta
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName activity.domain2.com
ProxyPass / http://activity.domain2.com:8000
ProxyPassReverse / http://activity.domain2.com:8000
</VirtualHost>
domínio2está apontandohttp://atividade.domain2.com:8000que foi servido pelo Nginx
para Nginx o servidor está configurado assim
server {
listen 8000;
server_name activity.domain2.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /root/domain2;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
Está tudo bem comwww.domínio1.com
Exceto, quando eu carregowww.domínio2.com, apenas o arquivo html é exibido, mas a solicitação de arquivo estático apresenta erro com o códigoErro de proxy 502
Como posso consertar isso?
Atualizar:
Decido usar o nginx na frente do Apache para corrigir o problema. Mas ainda quero saber a resposta, se possível.Responder1
Para começar: parece que você perdeu uma barra final
ProxyPass / http://activity.domain2.com:8000
^
add a "/" here _/
Demanual:
Se o primeiro argumento terminar com um final
/
, o segundo argumento também deverá terminar com um final/
e vice-versa. Caso contrário, as solicitações resultantes para o backend poderão perder algumas barras necessárias e não entregar os resultados esperados.
Em segundo lugar, um erro de proxy geralmente é registrado em seus logs (de erros) e, como acontece com a maioria dos erros, a entrada do log geralmente será acompanhada por informações de depuração mais úteis do que as retornadas ao visitante do site. Primeiro verifique os logs do Apache, mas não se esqueça de verificar também os logs do servidor back-end nginx.