本文主要是介绍CentOS7 Nginx配置--静态文件过期时间、防盗链、访问控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
配置静态文件不记录日志并添加过期时间
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的客户端访问服务器。
nginx禁止某个IP或者IP段访问站点的设置方法
首先建立下面的配置文件放在nginx的conf目录下面,命名为deny.ip
cat deny.ip
deny 192.168.1.11;
deny 192.168.1.123;
deny 10.0.1.0/24;
在nginx的配置文件nginx.conf中加入:include deny.ip;
重启一下nginx的服务:/usr/local/nginx/sbin/nginx reload 就可以生效了。
deny.ip 的格式中也可以用deny all;
如果你想实现这样的应用,除了几个IP外,其他全部拒绝,
那需要你在deny.ip中这样写
allow 1.1.1.1;
allow 1.1.1.2;
deny all;
这篇关于CentOS7 Nginx配置--静态文件过期时间、防盗链、访问控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!