nginx防盗链和内核参数优化

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

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

if ($invalid_referer) {

#retrun 302 http://www.tanhong.com/img/nolink.jpg;

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:该参数与性能无关,用于解决TCP的SYN攻击

时间: 2024-12-28 19:20:09

nginx防盗链和内核参数优化的相关文章

Nginx防盗链和FPM模块优化

配置nginx实现防盗链在企业网站服务中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失nginx防盗链功能也非常强大.默认情况下,只需要进行简单的配置,即可实现放到链处理实验环境一台nginx服务器,一台测试客户机,一台盗链机实验过程1.nginx服务器上部署nginx服务详细部署过程请查看:https://blog.51cto.com/14557905/2460945nginx部署成功!2.配置盗链机创建盗链机的网页除非用本地的域名去访问如果匹配的是无效的,否则就跳转一个er

linux 内核参数优化

linux 内核参数优化 Sysctl命令及linux内核参数调整 一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysctl [-n] [-e] -w variable=value sysctl [-n] [-e] -p (default /etc/sysctl.conf) sysctl [-n] [-e] –a 常用参数的意义: -w  临时改变某个指定参数的值,如 # sy

Apache和Nginx防盗链的几种配置方法

要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫 referer,采用URL的格式来表示从哪儿链接到当前的网页或文件.换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源 文件,则可以跟踪到显示它的网页地址.有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返 回指定的页面. Nginx防盗链的配置 1.nginx针对文件类型的防盗链配置

内核参数优化之2-1 tcp/ip 标志位报文解析

以下内容纯属虚构,切勿轻易相信! 众所周知,tcp/ip三次握手和四次挥手,均由syn/ack/fin三个标志位报文决定,但是这三个标志位报文,并不是说在构建连接的时候只发送一次的,因为协议不知道网络状况. 故而就存在了以下参数,可以调节发送次数 net.ipv4.tcp_syn_retries 这个参数从字面上来看就是syn标志位报文的重试次数,什么时候发送syn标志位呢?三次握手中,请求端第一次构建连接的时候,默认是5次,但是对于一个处于网络状况好的请 求端,5次显然是多了,因此,我们来个2

Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理

12.13 Nginx防盗链cd /usr/local/nginx/conf/vhostvi test.com.conf将以上内容复制到下图位置测试,成功前提data/wwwroot/test.com目录下要有1.gif12.14 Nginx访问控制cd /usr/local/nginx/conf/vhostvi test.com.confFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=" alt="Nginx

2018-3-1512周4次课 Nginx防盗链、访问控制、配置PHP解析、代理

12.13 Nginx防盗链 [[email protected] test.com]# vim /usr/local/nginx/conf/vhost/test.com.conf ~* 表示不区分大小写 白名单 *.test.com,如果不是白名单,则返回403 [[email protected] test.com]# curl -e "http://www.baidu.com"-x127.0.0.1:80 test.com/1.gif -I HTTP/1.1 403 Forbid

Nginx防盗链配置实例——从盗链模拟到防盗链设置流程细解

Nginx防盗链设置 ? 对于图片来说,A网站,如果想使用B网站的图片,可以直接写上B网站图片的链接地址,或者将B网站的图片通过右键另存为的方式下载到本地,然后在页面上使用.如果B网站不想A网站这么干了,那么B网站可以采取防盗链的措施来干这个工作,结果就是,A网站想请求所需要的资源,通过url的方式,获取的可能不是原来的图片了,出现404或者别的图片替代了.如果通过浏览器直接打开图片url,那么仍然有可能显示404,这就是防盗链. ? 下面我们先进行盗链的操作过程:就是如何做盗链网站--盗取别人

TCP/IP及内核参数优化调优

Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等.如下配置是写在sysctl.conf中,可使用sysctl -p生效,相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整. net.core.netdev_max_backlog = 400000#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目. net.c

linux内核参数优化调优

TCP/IP及内核参数优化调优 Linux下TCP/IP及内核参数优化有多种方式,参数配置得当可以大大提高系统的性能,也可以根据特定场景进行专门的优化,如TIME_WAIT过高,DDOS攻击等等.如下配置是写在sysctl.conf中,可使用sysctl -p生效,相关参数仅供参考,具体数值还需要根据机器性能,应用场景等实际情况来做更细微调整. net.core.netdev_max_backlog = 400000#该参数决定了,网络设备接收数据包的速率比内核处理这些包的速率快时,允许送到队列