【黄啊码】nginx如何设置php运行的

禁止访问 PHP 脚本可以通过 Nginx 服务器配置中的多种方式来实现。以下是其中的一些常见方法,您可以根据实际需求选择合适的方式:

1 禁用 PHP 解析:

在 Nginx 配置中,确保 PHP 脚本无法被解析,从而禁止 PHP 执行。

location ~ \.php$ {

deny all;

}

2 限制访问路径:

限制只允许访问特定路径下的 PHP 脚本,其他路径禁止。

location /public {

允许访问 /public 下的 PHP 脚本

location ~ \.php$ {

fastcgi_pass unix:/var/run/php-fpm.sock;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name;

}

}

禁止访问其他路径的 PHP 脚本

location ~ \.php$ {

deny all;

}

3 使用 HTTP Basic 认证:

要求用户提供用户名和密码以访问 PHP 脚本。

location ~ \.php$ {

auth_basic "Restricted";

auth_basic_user_file /etc/nginx/.htpasswd; # 使用 htpasswd 生成密码文件

...

}

4 IP 地址访问控制:

限制只有特定的 IP 地址可以访问 PHP 脚本。

location ~ \.php$ {

allow 192.168.1.1; # 允许的 IP 地址

deny all; # 禁止其他 IP 地址

...

}

5 Referer 检查:

检查 HTTP Referer 头,只允许特定来源的请求。

location ~ \.php$ {

valid_referers none blocked example.com; # 允许的 Referer

if ($invalid_referer) {

return 403; # 拒绝无效的 Referer

}

...

}

6 User-Agent 检查:

检查 User-Agent 头,只允许特定 User-Agent 访问。

location ~ \.php$ {

if ($http_user_agent ~* (bad-agent|another-bad-agent)) {

return 403; # 拒绝不良 User-Agent

}

...

}

7 URL 匹配:

通过正则表达式匹配 URL,只允许特定 URL 访问 PHP。

location ~ \.php$ {

if ($request_uri ~* ^/allowed-path/) {

允许的 URL 路径

...

}

return 403; # 其他路径禁止

}

8 文件类型匹配:

只允许特定文件类型的 PHP 文件执行。

location ~ \.php$ {

if (request_filename \~\* \\.php) {

允许的文件类型

...

}

return 403; # 禁止其他文件类型

}

9 设置文件权限:

通过文件系统的权限设置,限制 PHP 脚本的访问。

location ~ \.php$ {

设置文件的访问权限为 600 或更高

...

}

10 利用 Nginx 的 map 模块:

使用 Nginx 的 map 模块来根据条件禁止 PHP 访问。

map remote_addr php_disabled {

default 0;

192.168.1.1 0; # 允许的 IP 地址

~^192\.168\.2\. 1; # 允许的 IP 地址范围

}

location ~ \.php$ {

if ($php_disabled) {

return 403; # 禁止访问

}

...

}

11 利用 Nginx 的 geo 模块:

使用 Nginx 的 geo 模块根据地理位置禁止 PHP 访问。

geo $allowed_country {

default 0;

US 1; # 允许的国家或地区

CA 1;

}

location ~ \.php$ {

if ($allowed_country = 0) {

return 403; # 禁止访问

}

...

}

12 禁止特定 HTTP 方法:

限制只有特定的 HTTP 方法可以访问 PHP 脚本。

location ~ \.php$ {

if (request_method !\~ \^(GET\|POST)) {

return 403; # 禁止其他方法

}

...

}

13 限制访问时间:

限制只有在特定时间段内可以访问 PHP 脚本。

location ~ \.php$ {

if ($time_iso8601 !~ "T(08|09|10|11|12|13):") {

return 403; # 限制访问时段

}

...

}

14 HTTP 访问速率限制:

限制访问速率以减轻服务器负载。

location ~ \.php$ {

limit_req zone=mylimit burst=5 nodelay;

limit_req_status 403;

...

}

15 使用 Nginx 内置变量:

使用 Nginx 的内置变量结合条件语句来根据特定条件禁止 PHP 访问。

location ~ \.php$ {

if ($http_cookie ~* "adminuser=") {

return 403; # 如果包含特定 Cookie

}

...

}

请注意,上述方法可以单独使用或组合使用,具体的选择取决于您的安全需求和服务器配置。同时,

确保在配置中使用适当的测试和调试方法,以确保您的 Nginx 服务器按照预期运行。

相关推荐
李纲明1 小时前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
4SAPI1 小时前
AI 数据分析工具大模型 API 选型指南
大数据·人工智能·架构·php·1024程序员节
f8979070702 小时前
php升级之后切换到php8.2.35报pdo错误
php
4SAPI2 小时前
搭建 AI 数据分析工具大模型 API 选型指南
数据库·人工智能·架构·php·1024程序员节
Regentsoft丽晶软件3 小时前
从 “定时拉取“ 到 “事件驱动“,服装库存实时同步的底层架构怎么设计?
经验分享·php·零售
用户60968624266085 小时前
页面构建器做的页面翻译:短代码、区块、动态内容各自会踩什么坑
php·wordpress
阿文和她的Key5 小时前
PHP2Shell事故四层拆解:AI找洞是小时级,披露协调还是邮件级
网络·人工智能·架构·php
贵州诚鑫致达科技有限公司9 小时前
PHP两个9.2分RCE漏洞,速查版本
服务器·php·1024程序员节
hudie76510 小时前
LikeShop 二开最常改的 5 个文件(附改前改后对比)
前端·uni-app·php·个人开发
东宇科技10 小时前
crmeb开源版本安装步骤2026-10-20
后端·php·crmeb