相关疑难解决方法(0)

如何在 nginx 的子位置中全局使用 FastCGI 和基本身份验证?

我最近部署了我的第一个 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;
}
Run Code Online (Sandbox Code Playgroud)

现在我想用这样的基本身份验证来保护一些位置:

 location /madmin {
         auth_basic "Restricted";
         auth_basic_user_file /var/www/localhost/admincp/.htpasswd;
 }
Run Code Online (Sandbox Code Playgroud)

使用他的设置,nginx 在访问 /madmin 时会要求输入密码,但不会在 /madmin/foo.php 上询问。如果我将身份验证位置更改为“位置 ~ ^/madmin”,那么 nginx 将提供 php 文件以供下载...

是不是可以在 nginx 中配置多个位置?如果没有,这里的解决方法是什么?

谢谢你的帮助。

php nginx

6
推荐指数
1
解决办法
1万
查看次数

Nginx - PHP 脚本上的基本 http 身份验证

我添加了一个充当“cgi-bin”的 PHP 脚本,
配置:

location ~^/cgi-bin/.*\.(cgi|pl|py|rb) {
    gzip  off;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index cgi-bin.php;
    fastcgi_param SCRIPT_FILENAME    /etc/nginx/cgi-bin.php;
    fastcgi_param SCRIPT_NAME        /cgi-bin/cgi-bin.php;
    fastcgi_param X_SCRIPT_FILENAME  /usr/lib/$fastcgi_script_name;
    fastcgi_param X_SCRIPT_NAME      $fastcgi_script_name;
    fastcgi_param QUERY_STRING       $query_string;
    fastcgi_param REQUEST_METHOD     $request_method;
    fastcgi_param CONTENT_TYPE       $content_type;
    fastcgi_param CONTENT_LENGTH     $content_length;
    fastcgi_param GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param SERVER_SOFTWARE    nginx;
    fastcgi_param REQUEST_URI        $request_uri;
    fastcgi_param DOCUMENT_URI       $document_uri;
    fastcgi_param DOCUMENT_ROOT      $document_root;
    fastcgi_param SERVER_PROTOCOL    $server_protocol;
    fastcgi_param REMOTE_ADDR        $remote_addr;
    fastcgi_param REMOTE_PORT        $remote_port;
    fastcgi_param SERVER_ADDR        $server_addr;
    fastcgi_param SERVER_PORT        $server_port;
    fastcgi_param SERVER_NAME        $server_name;
    fastcgi_param REMOTE_USER        $remote_user;
}
Run Code Online (Sandbox Code Playgroud)

PHP脚本:

<?php

$descriptorspec = array(
   0 …
Run Code Online (Sandbox Code Playgroud)

nginx authentication

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

nginx ×2

authentication ×1

php ×1