Logo

NGiNX 使用 .htaccess 保护/防盗连/限速

NGiNX 是个那摸猛滴 HTTP 伺服器软体,当然! 绝对! 一定是可以用 .htaccess 来保护目录的 ? 简单的范例如下,我要保护的是 phpmyadmin 资料夹,在 nginx.conf 的设定里面,我的 root 网页根目录已经指定到 /web/www 了,所以再来就直接在 server 的区段加上
# .htaccess 保护
location ~ .*/phpmyadmin {
auth_basic "PLEASE ENTER YOUR USERNAME AND PASSWORD!";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
}

location 的意思就是保护从网页根目录算起的 phpmyadmin 目录 (放在 /web/www/phpmyadmin )
auth_basic 的意思就是进入资料夹时会显示的讯息
auth_basic_user_file 的意思就是需要的帐号密码档案放在哪,我这边设定是放在 /usr/local/nginx/conf/htpasswd
然后再利用 .htaccess 线上产生器(或是这里 .htaccess Editor) 制作一个 htpasswd 丢到 /usr/local/nginx/conf/ 底下去,也不需要重新启动,直接在 SSH 输入

kill -HUP cat /usr/local/nginx/logs/nginx.pid

来更新 NGiNX 的新设定值就 OK 了,也不需要再多装 Apache 来设密码~! ?

另外 NGiNX 防盗连偷图当然也是 OK 滴! ? 一样也是在 server 的区段加上
location ~* .(txt|ico|gif|png|bmp|jpg|jpeg|zip|rar|gz|7z|exe|mp3|flv|swf)$ {
valid_referers none blocked 520.be cpg.520.be easygo.za.net;
if ($invalid_referer) {
rewrite ^/ https://520.be/hotlink.html;
}
}

这时候 location 的意思就是保护从网页根目录算起,所有的指定的副档名都依照此规则
valid_referers none blocked 的意思就是不阻挡从哪些地方来的囉~ 这边以空格来分隔允许的域名或 ip 位置
$invalid_referer 的意思就是不允许连结
rewrite ^/ https://520.be/403.html; 的意思就是指定不允许的连结自动转向到一个页面,或是已经有设定 404 转址的也可以先注解掉这行再把 #return 404 的注解拿掉,就会自动跑到你设定的 404 页面了。

NGiNX 还能限速再限制下载线程! ? 先在 http 区段找到 limit_zone,再把注释拿掉~
# 设定一个叫做 crawler 的区域,大小为 20MB
limit_zone crawler $binary_remote_addr 20m;

然后在 server 的区段加上
# 限制档案类型只能单线下载
location ~ .*.(zip|rar|gz|tar|exe|mp3|flv|swf|jpg|jpeg)$
{
limit_conn crawler 1;
limit_rate 500k; # 再加上限速

}
# 限制特定资料夹底下只能单线下载
# location /download/ {
# limit_conn crawler 1;
# limit_rate 500k; # 再加上限速
# }

简单吧~! 轻巧的 NGiNX 不用多装什么模组,轻轻松松做好限制~ 用在 HostingInside 的 VPS A 初级规格,上面做简单的 Web Benchmark 测试(原本只有 128 MB RAM,做测试之前有安装软体,有请客服 Lee 增加记忆体~! ? ) 承受 500 个 clients 还没问题,700 个 clients 的时候就有失败了 ? 不过受测端系统负载还是很低,不会乱飙高! ? 要是硬体规格高一点,把 nginx.conf 的 worker_processes 以及 php-fpm.conf 的 max_children 这两个工作线程数调高一点就能承受更大的负载了。 ?
备注:HostingInside 的 VPS 是 OpenVZ 介面/HyperVM 控制台、IntelQuad-Core Xeon X3220 四核心处理器,限制 150 MHz )这家服务态度粉好唷~! 从台湾连线速度很棒(Staminus Communications, 机房在 Fullerton, California),客服又能用中文沟通,值得推荐一下! 但是他们是 OpenVZ 介面的不能搞 VPN ? ,所以偶三个月之后就不会续约了 ?
快丢掉 Apache 吧! ? ?

关于 穷苦人家的小孩

In every democracy, the people get the government they deserve. ~Alexis de Tocqueville

您可能会喜欢

希志あい 希志爱野 Kishi Aino

Oracle Linux 8初始化环境设定

2020年底的大爆炸消息就是C …