在nginx中,我们可以通过设置实现许多功能,如目录保护、IP访问限制、防盗链、下载限速及设置多域名等,有需要的朋友不妨看看。
一、目录保护及访问限制
复制代码代码如下:
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;
二、防盗链
复制代码代码如下:
location ~* \.(txt|ico|gif|png|bmp|jpg|jpeg|zip|rar|gz|7z|exe|mp3|flv|swf)$ {
valid_referers none blocked jbxue.com www.it.net.cn ; if ($invalid_referer) { rewrite ^/ http://www.it.net.cn/notlink.html; } }
这时候 location 的意思就是保护从网页根目录算起,所有的指定类型的文件都依照此规则
三、下载限速
复制代码代码如下:
# 设定一个叫做 crawler 的区域,大小为 20MB
limit_zone crawler $binary_remote_addr 20m;
然后在 server 的区段加上
复制代码代码如下:
# 限制档案类型只能单线下载
# 限制特定资料夹底下只能单线下载
四、多域名处理
另外还需要在server_name配置后面加一行: |