Ubuntu 서버 14.04에 Nginx를 설정했으며 /app 경로를 수신하고 로컬 실행 Nodejs 인스턴스로 트래픽을 리디렉션하는 매우 간단한 서버 블록을 구성하고 싶습니다.
저는 Proxy_pass 및 기타 프록시 설정을 사용하여 이 작업을 수행했습니다.
내 문제는 노드 애플리케이션의 모든 정적 콘텐츠(img, js 등)가 Nginx 설치 시 생성된 기본 사이트 구성에 정의된 루트 대상인 /var/www/html에서 제공되려고 한다는 것입니다. 활성화된 사이트 폴더에서 심볼릭 링크를 제거하고 사이트 사용 가능 폴더에서 기본 파일도 삭제했지만 결과가 없습니다! 그럼에도 불구하고 루트 경로는 여전히 다른 곳이 아닌 이 사이트 구성에 정의된 기본 Nginx 시작 페이지를 제공합니다!
Nginx 기본값은 다른 곳에 정의되어 있습니까? 환영 페이지 처럼 간단한 사이트 구성을 생성하자마자 server {}
정적 콘텐츠는 삭제한 기본 파일에 정의된 대로 제공됩니다! 이 문제를 어떻게 해결할 수 있나요?
고쳐 쓰다:나는 제공된 기본 파일이 site-available/default에 정의되어 있다고 생각했던 /var/www/html에 있지 않다는 것을 발견했습니다. 대신에 다음과 같이 구성되어 있습니다./usr/share/nginx/html.....그러나 이 경로는 구성 어디에도 언급되어 있지 않습니까? 거기에서 어떻게 가져오나요?
답변1
이 /usr/share/nginx/html
디렉터리는 내장된 기본 문서 루트로 컴파일됩니다.
구성 파일을 사용하여 내장된 기본값을 무시할 수 있지만 거기에 있는 값은 패키지의 기본값(예: nginx를 설치한 배포판의 값)일 수 있지만 반드시 기본 컴파일 값과 동일하지는 않습니다. .
를 실행하여 컴파일 시간 값을 확인할 수 있습니다 nginx -V
.
nginx는 기본적으로 구성 없이 작동하는 방식으로 구축된 반면, apache는 무엇을 해야 할지 알려주는 구성 파일이 필요합니다. 왜냐하면 apache는 기본적으로 기본적으로 아무것도 컴파일하지 않기 때문입니다(구성 파일이 있는 곳은 제외). 아마도 여기서 혼란이 발생하는 것 같습니다.