
애플리케이션 재작성 작업을 하는 동안 새 파일을 찾을 수 없을 때를 대비해 기존 앱 웹 루트 파일을 유지하고 싶습니다.
2가지 애플리케이션이 있습니다:
<VirtualHost *:80>
ServerName legacy.dev
DocumentRoot /www/legacy/webroot
</VirtualHost>
<VirtualHost *:80>
ServerName new.dev
DocumentRoot /www/new/webroot
</VirtualHost>
DocumentRoot에 있는 파일을 검색하도록 new.dev VirtualHost를 설정하려면 어떻게 해야 합니까? 하지만 파일을 찾을 수 없으면 Legacy.dev DocumentRoot에서 파일을 검색할 수 있습니까?
답변1
처럼 들린다Nginx의 try_files에 해당하는 Apache는 무엇입니까?당신이 원하는 것을 할 것입니다.
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ balancer://app_cluster%{REQUEST_URI} [P,QSA,L]
파일을 찾으려고 시도하고 찾지 못하면 해당 파일을 Apache 프록시에 전달합니다. Apache: 다른 디렉토리에서 누락된 이미지를 찾기 위해 mod-rewrite프록시 없이 유사한 작업을 수행하기 위해 mod_rewrite를 사용하는 유사한 예를 보여줍니다. 보시다시피, 유사 RewriteCond
하지만 다소 다른 방식을 사용하므로 RewriteRule
작업하기가 더 쉽습니다.
첫 번째 참조 답변은 nginx를 try-files
Apache로 해킹하려고 시도하는 것이므로 이 경우 nginx를 직접 사용하는 것이 더 좋을 것입니다. try_files는 어떻게 작동하나요?그것이 당신에게 도움이 된다면 더 나은 아이디어를 줄 것입니다.