gpt4 book ai didi

nginx - 如何通过重写将基本身份验证添加到 nginx 配置

转载 作者:行者123 更新时间:2023-12-01 03:52:48 26 4
gpt4 key购买 nike

我有以下 nginx 配置,我想为此配置添加基本身份验证。

upstream phpfcgi {
server 127.0.0.1:7777;
# server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket
}
server{
listen 80;
server_name qu.abc.com;
root /home/qu/website/current/web;
location / {
# try to serve file directly, fallback to rewrite
try_files $uri @rewriteapp;

}

location @rewriteapp {
# rewrite all to app.php
rewrite ^(.*)$ /app.php/$1 last;
}

location ~ ^/(app|app_dev|config)\.php(/|$) {
fastcgi_pass phpfcgi;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}

error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}

我已将位置块编辑为此
location / {
# try to serve file directly, fallback to rewrite
auth_basic "Restricted";
auth_basic_user_file /home/qu/website/current/web/.htpassword;
try_files $uri @rewriteapp;

}

但是这个不适用于重写。
有人可以帮忙吗。

最佳答案

在我看来,您希望为整个服务器启用基本身份验证,而不仅仅是单个 location .方式location的工作是一次只应用一个,因此如果您在单个 location 中指定一个身份验证策略,但它确实是 rewrite到其他一些 location ,然后是另一个 location将不受之前 location 中的身份验证策略的约束

根据 auth_basic 的文档,似乎它不仅可以在 location 中使用上下文,但在 serverhttp , 也。

因此,如果您想要整个server要要求身份验证,只需移动您的所有 auth_basic指令向上一级,从单个 location , 到单例server .

关于nginx - 如何通过重写将基本身份验证添加到 nginx 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20625932/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com