博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx防盗链和内核参数优化
阅读量:6084 次
发布时间:2019-06-20

本文共 1909 字,大约阅读时间需要 6 分钟。

防盗链:防止别人直接从你网站引用图片等链接,消耗了你的资源和网络流量。有几种解决方法:1,水印,品牌宣传,带宽,服务器足够。2,防火墙,直接控制,前提是知道ip来源。3,防盗链策略下面的方法直接给与404错误提示

    location ~* ^.+\.(jpg | gif | png | swf | flv | wma | wmv | asf | mp3 | mmf | zip | rar)$ {

    if ($invalid_referer) {

    #retrun 302 

    return 404;

    break;

    }

    accesss_log off;

    }

内核参数优化

    fs.file-max=999999:参数表示进程可以同时打开的最大句柄数,直线限制最大并发连接数,根据实际情况配置。

    net.ipv4.tcp_max_tw_buckets=6000:表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。参数默认为180000,过多的TIME_WAIT套接字会使web服务器变慢。

    net.ipv4.ip_local_port_range=1024 65000:允许系统打开的端口范围

    net.ipv4.tcp_tw_recycle=1:启用timewait快速回收

    net.ipv4.tcp_tw_reuse=1:开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接。对于服务器来说很有意义,因为服务器上总会有大量TIME-WAIT状态的连接。

    net.ipv4.tcp_keepalive_time=30:表示当keepalive启用时,TCP发送keepalive消息的频度。默认2个小时。

    net.ipv4.tcp_syncookies=1:开启SYN Cookies,当出现SYN等待syn等待队列溢出时,启用cookies来处理。

    net.core.somaxconn=40960:web应用中listen函数的backlog默认会给我们内核参数的net.core.somaxconn限制128,而nginx定义的NGX_LISTEN_BACKLOG默认为511。必要需要调整这个值。

    对于一个TCP连接,Server与client需要通过三次握手来建立网络连接。当三次握手成功后,可以看到端口的状态有LISTEN转变为ESTABLISHED,接着这条链路上就可以传送数据,每一个处于监听状态的端口,都有自己的监听队列,监听队列的长度与如somaxconn参数和使用该端口的程序中listen函数有关。

    somaxconn参数和使用该端口的程序中listen函数有关

    somaxconn参数,定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128,对于一个经常处理新连接的高负载web服务环境128太小。大多数这个值建议增加至1024.大的侦听队列对防止拒绝dos攻击也会有帮助

    net.core.netdev_max_backlog=262144:每个网络借口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

    net.ipv4.tcp_max_syn_backlog=262144:这个参数标示TCP三次握手建立阶段接受SYn请求队列的最大长度,默认为1024,将其设置得大一些可以使出现nginx繁忙来不及accept新连接的情况时,linux不至于丢失客户端发起的连接请求。

    net.ipv4.tcp_rmem=10240 87380 12582912:这个参数定义了TCP接受缓存的最小值,默认值,最大值。

    net.ipv4.tcp_wmem=10240 87380 1252912:这个参数定义了TCP发送缓存

     net.core.rmem_default = 6291456:这个参数表示内核套接字接受缓存区默认的大小。

    net.core.wmem_default = 6291456:这个参数表示内核套接字发送缓存区默认的大小           net.core.rmem_max = 12582912:这个参数表示内核套接字接受缓存区的最大大小。

    net.core.wmem_max = 12582912:这个参数表示内核套接字发送缓存区的最大大小。

                     net.ipv4.tcp_syncookies = 1:该参数与性能无关,用于解决TCPSYN攻击

本文转自   宏强   51CTO博客,原文链接:http://blog.51cto.com/tanhong/1918332

转载地址:http://ouuwa.baihongyu.com/

你可能感兴趣的文章
超图SuperMap Is.Net开发心得及一些问题
查看>>
问题2017S03
查看>>
【转载】工作中遇到的js问题以及问题的解决方案
查看>>
序列化
查看>>
点是否在多边形内部的检验
查看>>
SQL Serever学习11——数据库的安全管理
查看>>
搭桥(最小生成树)
查看>>
ES6学习笔记之数组
查看>>
OneZero第四周第一次站立会议(2016.4.11)
查看>>
习题6-6 使用函数输出一个整数的逆序数
查看>>
HRBUST 1376 能量项链【DP】
查看>>
【分享】Google Java编程风格指南 ()中文版)
查看>>
KVM虚拟化简介及安装
查看>>
POJ 2823 Sliding Window
查看>>
数据结构与算法----->算法----->高级排序算法:基数排序
查看>>
微信小程序:第八天
查看>>
MySQL查询语句(select)详解(2)
查看>>
nginx学习之web服务器(四)
查看>>
JavaScript 使用HTML DOM的oninput事件,实时监听value值变化
查看>>
springmvc_1(hello world)
查看>>