子文件夹的 Nginx 位置配置
在本文中,我们将探讨如何配置 Nginx 来提供来自两个子文件夹的内容,其中一个位于根路径和特定 URL 处的另一个路径。
考虑以下目录结构:
/var/www/myside/ ├── static ├── manage
我们的目标是使 /static 文件夹可通过根 URL(例如 http://example.org/)访问,并且 /manage 文件夹可通过 /manage 访问(例如 http ://example.org/manage)。在本例中, /manage 文件夹包含 Slim 的 PHP 框架代码,实际的 PHP 文件位于 /var/www/mysite/manage/public/index.php。
Nginx 配置
为了实现这一点,我们可以使用 Nginx 的 location 指令。这是一个可能的配置:
server { listen 80; server_name example.org; error_log /usr/local/etc/nginx/logs/mysite/error.log; access_log /usr/local/etc/nginx/logs/mysite/access.log; root /var/www/mysite; location / { root /var/www/mysite/static; index index.html; } location /manage { alias /var/www/mysite/manage/public; index index.php; if (!-e $request_filename) { rewrite ^ /manage/index.php last; } location ~ \.php$ { if (!-f $request_filename) { return 404; } fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_index index.php; } }
说明
让我们分解配置:
别名与 root 的使用
使用别名时,Nginx 从以下位置提供文件指定目录,同时保留原始 URI。这对我们的目的很有用,因为我们希望 /manage URI 指向 /var/www/mysite/manage/public 目录。
相反,root 更改位置块的根目录,因此它不适合我们想要从不同位置提供不同子文件夹的场景。
重写规则index.php
重写规则可确保对 /manage 文件夹中不存在的文件的请求重定向到 index.php。这允许 Slim 的 PHP 应用程序处理请求。
PHP 文件处理
PHP 文件处理的两个位置块都包含运行 PHP 脚本的必要配置,例如 FastCGI设置和变量。 fastcgi_pass 指令将 PHP 请求定向到 PHP FastCGI 服务器。
最后注意事项
请确保您的 PHP FastCGI 服务器正在运行并正确配置。此设置应该允许您正确地提供 /static 和 /manage 子文件夹中的内容。
以上是如何配置 Nginx 以提供来自具有不同根路径的两个子文件夹的内容?的详细内容。更多信息请关注PHP中文网其他相关文章!