Linux
Nginx 只允許某些 IP 的 PHP 文件
我正在使用以下指令來阻止執行幾種文件類型
location ~* (\.php$|\.htaccess$|\.git) { deny all; }
如何只允許對某個特定 IP 地址執行一個 PHP 腳本?
我嘗試了以下方法以允許執行一個 PHP 腳本,但不工作..
location ~ ^adminer.php { fastcgi_pass php-fpm:9000; fastcgi_index adminer.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log"; include fastcgi_params; }
要根據 ip 阻止使用者,請使用ngx_http_access_module中所述的“允許 - 拒絕”指令 。如果需要,您可以添加一條全部擷取規則。
location ~* phpinfo.php { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; allow your.exact.i.p/32; deny all; } location ~* \.(?:php|htaccess|git)$ { deny all; }
用作
location = /path/to/adminer.php
您的位置塊。=
匹配在 nginx 中優先級最高,之後不匹配其他塊location
。在您的配置中,很可能是
location
塊的順序和重疊匹配阻止了它工作。