配置静态文件不记录日志并添加过期时间
vim test.com.conf
server
{
listen 80;
server_name test.com test1.com test2.com;
index index.html index.htm index.php;
root /data/nginx/test.com;
if ($host != 'test.com'){
rewrite ^/(.*)$http://test.com/$1 permanent;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 7d;
access_log off;
}
location ~ .*\.(js|css)$
{
expires 12h;
access_log off;
}
access_log /tmp/1.log combined_realip;
}
location ~ 指定对应的静态文件
expires 配置过期时间
access_log配置为off就可以不记录访问日志
Nginx 防盗链
location ~.*\.(gif|jpg|jpeg|png|bmp|swf|rar|zip)$
{
expires 7d;
access_log off;
valid_referers none blockedserver_name *.test.com ;//对这些域名的网站不进行防盗链,多个地址空格隔开。
if ($invalid_referer) {
return 403;
}
}
access_log /tmp/1.log combined_realip;
访问控制
location /admin/
{
allow 192.168.153.135;
allow 127.0.0.1;
deny all;
}
在配置httpd的时候还有一个order,来定义先allow还是先deny,在nginx里没有,只要匹配规则就结束了,来源IP 会从上到下逐一匹配。
阿铭老师分享:
nginx 使用 user_agent 控制客户端访问
nginx的日志格式中,有一个字段叫做 $http_user_agent 这个其实是客户端浏览器的一个信息,比如咱们平时使用IE浏览器的话,nginx的日志中会记录类似于这样的信息:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT5.1)
这一段信息就是 $http_user_agent 了。咱们可以根据这个特点来控制客户端的请求访问。比如,现在有这样一个需求
把使用IE 6.0 的客户端禁止访问,我们可以这样做:
在nignx的配置文件中,加入
1. location / {
2. if ($http_user_agent ~ 'MSIE6.0'){
3. return 403;
4. }
5. }
这样就能禁止使用IE 6.0的客户端访问服务器。