nginxで動作しないシンボリックリンク

nginxで動作しないシンボリックリンク

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 Locationブロックの内容を次に置き換えます。

fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

すべての変更は直ちに影響を受けます。

関連情報