【学习笔记】nginx配置优化与常用功能配置

【学习笔记】nginx配置优化与常用功能配置

其他

在这里插入图片描述

########################################

防盗链

描述:应用于location块。配置外域名访问,直接返回文件不存在。
操作

#REFERER-START
    location ~* \.(wma|wmv|asf|mp3|mmf|zip|rar|swf|flv|gif|jpg|png|jpeg)$ {
      	expires     30d;
		#nginx1.15版本
      	valid_referers h5.h5-bus.com www.cc007.top;
		#nginx1.12版本
      	#valid_referers none blocked h5.h5-bus.com www.cc007.top;
      	if ($invalid_referer) {
   	  		return 403;
      	}
    }
#REFERER-END

########################################

伪静态

描述:这个只是seo优化,对cpu反而增加了消耗。
操作

########################################

限流

描述:。
正常开发情况我们不对css、js、gif、png,jpg等进行连接限制,而对除此之外的链接进行限制。

要配http和location两个地方。
($binary_remote_addr这个变量是固定的。yhx_req_zone,yhx_conn_zone,yhx_perserver_zone 才是自定义变量)

注意
1、limit_req如果加了burst就一定要加nodelay,否则会造成大量的tcp连接请求等待。

操作

http {
limit_req_zone  $binary_remote_addr  zone=yhx_req_zone:10m   rate=10r/s; #####同一个ip一秒10个请求
limit_conn_zone  $binary_remote_addr  zone=yhx_conn_zone:10m; #####这里10M能记录32000条记录
limit_conn_zone $server_name zone= yhx_perserver_zone :10m;
..........
}
###########################################
location  ~ [^/]\.php(/|$) {
		..........
		limit_req   zone=yhx_req_zone;	 #####此处应用yhx_req_zone变量的规则
		limit_conn   yhx_conn_zone  1;  #####同一个ip并发连接数为1
		limit_conn   yhx_perserver_zone  1000;  #####该网站总连接数1000
limit_rate 300k; #####对每个连接限速300k。(是对连接限速,不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。)
		..........
}

疑问:。
1、 配了限流之后微信授权就不行了,配到100并发也不行。也不知道微信干了什么?
2、limit_rate好像没用,我弄成0,网站应该是不能访问了,但是依旧能访问?

########################################

反爬虫

描述:。
作用域server。
主要通过user_agent里面的信息作判断,但是这个user_agent很容易造假,只能尽人事。

参考
https://blog.51cto.com/9025736/2061947

操作

###############反爬虫
#禁止Scrapy|curl等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient))
{
     return 403;
}

#禁止指定UA及UA为空的访问
if($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" )
{
     return 403;            
}

#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$)
{
    return 403;
}

########################################

客户端缓存

描述:。
HTTP Headers 模块
主要就是这个expires。
一般对图片、css、js等资源进行缓存
一般结合防盗链使用。

操作

location ~* \.(jpg|png|gif)$ {
	expires 7d;
}

########################################

Gzip压缩

描述:。
https://segmentfault.com/a/1190000012571492?utm_source=tag-newest

操作

##########开启关闭
gzip  on;
##########压缩缓冲区大小,和增加步进空间
gzip_buffers 16 8k;
##########压缩级别,1-9
gzip_comp_level 2; 
##########设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k可能会越压越大。
gzip_min_length 1k;	
##########Nginx做为反向代理的时候启用。通过判断后端服务器返回的header中的参数决定是否压缩。具体参数自行百度。
gzip_proxied     expired no-cache no-store private auth;
##########需要压缩的文件类型
gzip_types       text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
##########增加响应头”Vary: Accept-Encoding”,具体不知道什么用
gzip_vary on; 
##########IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩 ,所以通过User-Agents匹配识别浏览器,识别到是不能压缩的浏览器就不压缩。
gzip_disable   "MSIE [1-6]\."; 

参考
https://www.cnblogs.com/xzkzzz/p/9224358.html
https://segmentfault.com/a/1190000012571492?utm_source=tag-newest
https://www.cnblogs.com/kevingrace/p/10018914.html
https://www.jianshu.com/p/cc61d74104e5
https://segmentfault.com/a/1190000012694104

########################################

强制https

描述:。
作用域server

操作

if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$request_uri permanent;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值