Loading

nginx限制ip访问,显示访问频率,限制只能通过index.php入口文件执行PHP访问PHP网站项目

筛选日志中访问前10的ip
awk '{print $1}' /usr/local/nginx/logs/my_access.log | sort | uniq -c | sort -nr -k1 | head -n 10

整个ip段

deny 101.13.15.0/24; (101.13.15.1到101.13.15.254全部屏蔽)

限制单个ip

deny 218.63.23.197;

网站访问项目路径示例(只能通过index.php入口)

server {
	listen       80;
	server_name  wangzhaobo.cnblogs.com ;#域名
	root   "/home/wwwroot/wangzhaobo";#项目所在路径
	location / {
		#规则重写
	 	if (!-e $request_filename) {
	 		rewrite  ^/index.php(.*)$  /index.php?s=$1  last;
	 		rewrite  ^(.*)$  /index.php?s=$1  last;
			break;
		}
		#开放uploads目录
		location /uploads/ {
			break;
		}
		#开放favicon.ico图片文件, 该图片为显示在浏览tab栏上的网站
		logolocation ~ ^/favicon.ico$ {
			break;
		}
		#只输入域名也能访问到默认的index.php,不至于被显示404
		location ~ ^/$ {
			break;
		}
		#访问以上情况之外的文件都显示404return 404;
	}
	#只有根目录下的index.php文件会被转发给php解析, 其他的php文件都无法直接执行, 提高了系统的安全性
	location ~ ^/index\.php$ {
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
		fastcgi_param  PHP_VALUE        open_basedir=$document_root:/tmp/:/proc/;
		include        fastcgi_params;
	}
}
posted @ 2023-05-06 09:21  王召波  阅读(63)  评论(0编辑  收藏  举报