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;
すべての変更は直ちに影響を受けます。