【黄啊码】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_root$fastcgi_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 服务器按照预期运行。
相关文章:
【黄啊码】nginx如何设置php运行的
禁止访问 PHP 脚本可以通过 Nginx 服务器配置中的多种方式来实现。以下是其中的一些常见方法,您可以根据实际需求选择合适的方式: 1 禁用 PHP 解析: 在 Nginx 配置中,确保 PHP 脚本无法被解析,从而禁止 PHP 执行。 lo…...

无涯教程-JavaScript - ISPMT函数
描述 ISPMT函数计算在特定投资期间支付的利息。提供此功能是为了与Lotus 1-2-3兼容。 语法 ISPMT (rate, per, nper, pv)争论 Argument描述Required/OptionalRateThe interest rate for the investment.RequiredPerThe period for which you want to find the interest, an…...
LeetCode 面试题 03.05. 栈排序
文章目录 一、题目二、C# 题解 一、题目 栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和…...

构建微服务项目时启动网关服务失败的解决方案
启动网关服务时报“Unable to create the temporary folder: C:\WINDOWS\TEMP\/nio-file-upload”错误。 代码与之前没有任何变化,但就是启动不了,观察错误意思大概是不能创建临时文件夹:C盘下的WINDOWS下的TEMP目录下的nio-file-upload这个东…...

零基础教程:使用yolov8训练无人机VisDrone数据集
1.准备数据集 1.先给出VisDrone2019数据集的下载地址: 链接:https://pan.baidu.com/s/1e2Q0NgNT-H-Acb2H0Cx8sg 提取码:31dl 2.将数据集VisDrone放在datasets目录下面 2.数据集转换程序 1.在根目录下面新建一个.py文件,取名叫…...
【Mysql专题】使用Mysql做排行榜,线上实例
背景 我们这里有个需求,对存量用户的余额做排行处理,这个实现方式很多,这边介绍的是,通过Mysql直接实现,将排名也直接返回出来。 我知道大家在网上能找到一大把这种实例,我在这里可不是【重复造轮子】。我…...

matlab数据处理: cell table array+datetime
原数据文件.csv matlab xlsread(filename{i},B2:T2881) 会同于Excel最多1048576行 舍弃 a{1,i} xlsread(filename{i},‘B2:T2881’);%读取excel文件,选定区域’B2:G2881’ readcell(filename{i},Range,E2:M2881) 会全部读取 优选 对于日期 yyyy-MM-dd HH:mm:ss.000 matlab cel…...

如何应用运营商大数据精准营销?
如何应用运营商大数据精准营销? 越来越多的企业逐渐觉察到运营商大数据所带来的商业价值,精准营销也被他们用的越来越娴熟。那么,企业的大数据精准营销该如何应用呢?想必是很多资源有限的中小型公司最想了解的。 一 数据驱动运营…...

AJAX学习笔记5同步与异步理解
AJAX学习笔记4解决乱码问题_biubiubiu0706的博客-CSDN博客 示例 前端代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>演示AJAX同步和异步</title> </head> <body> <script…...
911面试
WebPack分包 webpack分包 ts泛型 ts泛型 优化if-else和switch 优化if-else 左侧固定,右侧自适应 左侧固定,右侧自适应...

【Java基础篇 | 面向对象】—— 继承
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 本专栏旨在分享学习JavaSE的一点学习心得,欢迎大家在评论区讨论💌 继承允许一个类继承另一个…...
DELL precision上安装nvidia A4000驱动 cuda cudnn
一、安装驱动 参考这篇文章进行安装Ubuntu安装Nvidia显卡驱动_Kevin__47的博客-CSDN博客 【出现问题】 禁用nouveau后出现黑屏,有几行代码,断线一直在闪 【解决方法】 1、参考这篇文章Ubuntu20.04安装nvidia显卡驱动并解决重启后黑屏问题_ubuntu安装…...

数据结构算法刷题(29)动态规划
思路一:回溯:按照选和不选的判断方式,使用回溯来解决这个问题。 class Solution: def rob(self, nums: List[int]) -> int: n len(nums) #数组的长度 def dfs(i): if i<0: #到达边界条件后 return 0 #返回最大金额是0 res max(dfs(i…...

W11下CMake MinGW配置OpenCV和Qt
💂 个人主页:风间琉璃🤟 版权: 本文由【风间琉璃】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 前言 前几天将cuda版本的opencv给编译成功了,当时用的VS的MSVC&…...

反转字符串 反转字符串 || 反转字符串 |||
思想总结:首先将字符串转变为字符数组,再进行遍历并反转字符。 1.反转字符串 代码: class Solution {public void reverseString(char[] s) {reverse(s,0,s.length); //左闭右开}public static void reverse(char[] ch,int i,int j) { 翻转函…...

XML解析 不允许有匹配 _[xX][mM][lL]_ 的处理指令目标
以上错误是在解析xml参数时候报出的。 我这里错误的原因在于,<?xml version\"1.0\" encoding\"UTF-8\"?>少了个空格,参考下图: 下面一行才是对的。...

【C++进阶(五)】STL大法--list模拟实现以及list和vector的对比
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C 🔝🔝 list模拟实现 1. 前言2. list类的大致框架与结构…...

Docker安装RabbitMQ集群_亲测成功
先安装Docker Centos7离线安装Docker 华为云arm架构安装Docker RabbitMQ集群模式介绍 RabbitMQ集群搭建和测试总结_亲测 RabbitMQ 有三种模式:单机模式,普通集群模式,镜像集群模式。单机模式即单独运行一个 rabbitmq 实例,而…...
50道基础数据结构面试题
程序员必备的50道数据结构和算法面试题 在本文中,将分享一些常见的编程面试问题,这些问题来自于不同经验水平的程序员,囊括从刚大学毕业的人到具有一到两年经验的程序员。 编码面试主要包括数据结构和基于算法的问题,以及一些诸…...

【Linux基础】权限管理
👻内容专栏: Linux操作系统基础 🐨本文概括: 用户之间的切换、sudo提权、Linux权限管理、文件访问权限的相关方法、目录权限、粘滞位等 🐼本文作者: 阿四啊 🐸发布时间:2023.9.11 …...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...