웹사이트를 호스팅하는 아파치가 있습니다.000-default.conf~을 위한www.domain1.com
또 하나는domain2.conf~을 위한www.domain2.com
그리고 이런 구성이 있어요
<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>
도메인2가리키고 있다http://activity.domain2.com:8000Nginx에서 제공한 것입니다.
Nginx의 경우 서버는 다음과 같이 구성됩니다.
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;
}
모든 것이 괜찮습니다www.domain1.com
제외하고, 로드할 때www.domain2.com, HTML 파일만 제공되지만 정적 파일 요청에는 코드 오류가 있습니다.502 프록시 오류
이 문제를 어떻게 해결할 수 있나요?
업데이트:
문제를 해결하기 위해 Apache 대신 nginx를 사용하기로 결정했습니다. 하지만 가능하다면 여전히 답을 알고 싶습니다.답변1
우선: 후행 슬래시가 누락된 것 같습니다.
ProxyPass / http://activity.domain2.com:8000
^
add a "/" here _/
로부터수동:
첫 번째 인수가 후행 으로 끝나는 경우
/
두 번째 인수도 후행 으로 끝나야 하며/
그 반대의 경우도 마찬가지입니다. 그렇지 않으면 백엔드에 대한 결과 요청에서 필요한 일부 슬래시가 누락되어 예상 결과를 제공하지 못할 수 있습니다.
둘째, 프록시 오류는 일반적으로 (오류) 로그에 기록되며 대부분의 오류와 마찬가지로 로그 항목에는 일반적으로 사이트 방문자에게 반환되는 것보다 더 유용한 디버깅 정보가 함께 제공됩니다. 먼저 Apache 로그를 확인하고 nginx 백엔드 서버에 대한 로그도 확인하는 것을 잊지 마십시오.