2015-06-12 17 views
6

Trên nhiều trang web có thể được tìm thấy nginx này location khối:Fastcgi_index trong nginx được sử dụng để làm gì?

location ~ \.php$ { 
    fastcgi_pass 127.0.0.1:9000 
    fastcgi_index index.php 
    ... 
} 

Với official documentation của fastcgi_index, nó có vẻ như nó được sử dụng khi yêu cầu kết thúc với /. Tuy nhiên, nó không khớp với cụm từ thông dụng của khối location ở trên? Tôi có thiếu điều gì đó về chỉ thị fastcgi_index không?

Trả lời

3

Bạn là đúng, nếu cấu hình nginx của bạn (ngoài thị location) không có index chỉ thị, sau đó chỉ thị location sẽ không bao giờ phù hợp và chỉ thị fastcgi_index là vô ích.

Nếu bạn có một dòng như thế này trên cấu hình của bạn

index index.php 

sau đó yêu cầu / sẽ tạo ra một chuyển hướng nội bộ để /index.php, các location sẽ phù hợp và fastcgi sẽ được gọi. php-fpm sẽ cần tham số SCRIPT_FILENAME trỏ tệp đang được thực thi. Thông thường, cấu hình trông giống như sau:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

$fastcgi_script_name chứa tên của kịch bản phù hợp, vì vậy fastcgi_index được bỏ qua.

Có ít nhất một trường hợp trong đó fastcgi_index hữu ích và được sử dụng: when nginx and php-fpm are on different servers and nginx can't match the index.php file.

Các vấn đề liên quan