来源:自学PHP网 时间:2015-07-25 22:53 作者: 阅读:次
[导读] NGiNX 是个非常优秀的HTTP 服务器软件,可以通过设置有实现许多功能,如目录保护、IP访问限制、防盗链、下载限速及设置多域名等等...
一、NGINX目录保护及访问限制 Nginx保护目录的配置如下,目录密码保护文件是 /usr/local/nginx/htpasswd location ~ /admin { #admin为要保护的目录名称,location 的意思就是保护从网页根目录算起的admin 目录 auth_basic ”PLEASE LOGIN”; #就是进入资料夹时会显示的信息 auth_basic_user_file /usr/local/nginx/htpasswd; #验证用户及密码文件,我这边设定是放在 /usr/local/nginx/htpasswd } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/bbs$fastcgi_script_name; include fastcgi_params; } 注意,设置目录密码保护时,请注意配置区块的位置,如果放在location ~ \.php$ {}区块后面,如果打开的是静态页面或图片等非php文件,会提示要输入密码,但是,如果打开的是php文件,则设置无效,会直接执行php文件并显示。因此,一定要注意把要设置目录密码保护的区块放在location ~ \.php$ {}区块之前。 生成密码文件: htpasswd -b -c /usr/locla/nginx/htpasswd username password; 二、NGINX防盗链 另外 NGiNX 防盗链,防止别人偷图(视频、flash、软件…)当然也是 OK 滴! 一样也是在 server 的区段加上 location ~* \.(txt|ico|gif|png|bmp|jpg|jpeg|zip|rar|gz|7z|exe|mp3|flv|swf)$ { valid_referers none blocked jb51.net www.jb51.net ; if ($invalid_referer) { rewrite ^/ http://www.jb51.net/notlink.html; } } 这时候 location 的意思就是保护从网页根目录算起,所有的指定类型的文件都依照此规则 特别提醒:如何来看防盗链是否是生效的,建议大家直接看服务日志,不要拿个网站来测试。因为有些不要脸的家伙(比如某度),他会用自己的图片服务器来提供服务。就是因为这个原因,上一次我在做这个的时候,浪费了很多时间。 三、NGINX下载限速 NGiNX 还能限速再限制下载线程! 先在 http 区段找到 limit_zone,再把注释拿掉~ 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多域名设置 今天在配置PHP+Nginx时出现一个严重的问题,在Nginx虚拟主机上绑定了泛域名,在程序中需要用二级域名指向不同的内容,但无论如何访问都只跳转到主域名上!为了找到问题,一个一个试验,得出如下结论:不管绑定多少域名,用 $_SERVER["SERVER_NAME"] 只会返回虚拟主机中绑定的第一个域名! 比如绑定域名如下: server_name www.jb51.net *.jb51.net jb51.net 既然有问题,就肯定有解决方案。。在wiki主翻了N久,终于找到了需要的资料!原来:$_SERVER["SERVER_NAME"] 返回的值是由 Nginx 的 fastcgi_param 中 SERVER_NAME 提供的,而默认的配置为: fastcgi_param SERVER_NAME $host; 另外还需要在server_name配置后面加一行: server_name_in_redirect off; |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com