Nginx는 심볼릭 링크가 없는 루트 경로(예: .../1.0/public)에서 잘 작동합니다. 심볼릭 링크(예: .../current/public, 여기서 current는 2.0에 대한 링크)를 사용할 때 이전 대상 폴더의 이름을 변경하지 않는 한 변경 사항은 영향을 받지 않습니다. nginx 버전 1.13.6을 사용하고 있습니다.
나는 disable_symlinks off;
그것을 nginx.conf에 제공했습니다. 누군가 nginx에서 심볼릭 링크를 사용하여 루트 경로를 지정하고 이 링크를 사용하여 nginx를 다시 시작하지 않고도 다른 대상을 가리켜 사용자 경험이 중단되지 않고 변경이 원활하게 이루어지도록 하는 방법을 알려줄 수 있습니까?
답변1
문제는 fastCGI가 경로를 캐싱하고 있기 때문입니다. nginx 구성의 라인:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
PHP 위치 블록의 내용을 다음으로 바꿉니다.
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
모든 변경 사항은 즉시 영향을 받습니다.