php – 如何在nginx中的sublocations中全局使用FastCGI和Basic A
发布时间:2020-12-13 13:56:45 所属栏目:PHP教程 来源:网络整理
导读:我最近部署了我的第一个nginx设置,一切都很好,除了位置解析让我疯了.我有一个简单的php fastcgi设置如下: location ~ .php { if (!-e $request_filename) { return 404; } include /etc/nginx/fastcgi.conf; keepalive_timeout 0; fastcgi_param SCRIPT_FI
我最近部署了我的第一个nginx设置,一切都很好,除了位置解析让我疯了.我有一个简单的php fastcgi设置如下:
location ~ .php { if (!-e $request_filename) { return 404; } include /etc/nginx/fastcgi.conf; keepalive_timeout 0; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; } 现在我想用基本的auth保护一些位置,如下所示: location /madmin { auth_basic "Restricted"; auth_basic_user_file /var/www/localhost/admincp/.htpasswd; } 有了他的设置,nginx在转到/ madmin时要求输入密码,但不会在/madmin/foo.php上询问.如果我将auth位置更改为“location~ ^ / madmin”,那么nginx会提供php文件供下载… 是不是可以在nginx中配置多个位置?如果没有,这里的解决方法是什么? 谢谢你的帮助.
有关nginx如何处理请求(包括位置)的说明,请参阅
http://nginx.org/en/docs/http/request_processing.html.维基文档也有一些很好的例子.不幸的是,最有可能的是你想要的当前未记录的功能.
如前所述,只有一个位置在NginX中获胜;但是,您可能不知道nginx支持位置内的位置.所以你的位置策略实际上可能就像这个示例服务器(0.8.31中的fastcgi.conf): upstream my-backend { localhost:9000; } server { listen 80; server_name my-awesome-php.site; root /path/to/root; # The protected location location /protected { auth_basic "Give me codes."; auth_basic_user_file /path/to/.htpasswd; location ~ .php${ include fastcgi.conf; fastcgi_pass my-backend; } } # Normal files (blank location is OK,just means serve from root) location / { } # PHP for normal stuff location ~ .php${ include fastcgi.conf; fastcgi_pass my-backend; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |