Nginx的优化和防盗链

1.隐藏版本号:

Nginxbug多,更新版本速度快,所以版本号暴露出去,很容易遭到攻击

Server_tokens off;

在http大模块中修改,不在serve中,也不是location

Nginx的优化和防盗链_第1张图片

Nginx的优化和防盗链_第2张图片

Nginx的优化和防盗链_第3张图片

第二种方式修改:修改源码包,重新编译安装

Nginx的优化和防盗链_第4张图片

Vim nginx.h

改完之后重新编译安装,一下

将server_tokens on; 打开

Nginx的优化和防盗链_第5张图片

Nginx的优化和防盗链_第6张图片

2.Nginx日志分割:

Nginx没有自带的日志分割功能:靠运维人员实现日志分割,只能靠脚本实现。

脚本:

Nginx的优化和防盗链_第7张图片

别忘了设置定时任务:

Nginx的优化和防盗链_第8张图片

3.网页压缩:

http_gzip_static_module

可以对文件内容和图片进行压缩的功能,节约宽带,提升用户的访问速度

Nginx的优化和防盗链_第9张图片

Nginx的优化和防盗链_第10张图片

格式:

gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json;

查看连接状态:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

4设置Nginx的图片缓存时间

可以在日后访问时,不需要经常的后台请求数据,加快访问速度

一般是以静态页面设置,动态页面不与设置缓存时间

Nginx的优化和防盗链_第11张图片

Nginx的优化和防盗链_第12张图片

5.连接超时:

Nginx的优化和防盗链_第13张图片

6.Nginx的并发设置:

在高并发的场景下,需要Nginx启动更多的进程来保护快速响应

根据CPU核心数可以调整Nginx的进程数,生产中给4个足够了

Nginx的优化和防盗链_第14张图片

别忘了修改limit.conf,否则没有任何效果

查看CPU核数

为什么8个以上性能会降低:

CPU多了频繁切换,效率会降低

绑定CPU,让其单独处理服务

练习题:

TAME_WAIT大量出现,该如何优化

Time_wait是tcp连接状态的一种,不是报错,出现在四次挥手之后

在time_wait状态下,tcp处于连接等待状态,等待有一个持续时间http1.1会话保持

作用:

1.确保可靠的关闭连接

2.避免连接复用

3.在关闭连接正常之后,一段时间之后,自动消失,而且占用的资源很少,对服务器的性能影响有限

修改内核文件:

 vim /etc/sysctl.conf

Nginx的优化和防盗链_第15张图片

net.ipv4.tcp_syncookies = 1

#表示开SYN cookies

当出现SYN等待队列溢出时,启用cookies处理syn队列,默认是0 ,1开启。

net.ipv4.tcp_tw_reuse = 1

#time_wait状态可以重用,一个连接就要占用一个端口,time_wait把所有的端口全部占满了,新的连接请求也不会拒绝。

net.ipv4.tcp_tw_recycle = 1

#让time_wait尽快回收。

net.ipv4.tcp_fin_timeout = 60

 # 所有time_wait 最大的生命周期60秒。

7.Nginx的内置变量:打印结果

$remote_addr 客户端的ip地址

Nginx的优化和防盗链_第16张图片

Nginx的优化和防盗链_第17张图片

以文本形式展示

Nginx的优化和防盗链_第18张图片

显示客户端的端口号$remote_port

Nginx的优化和防盗链_第19张图片

Nginx的优化和防盗链_第20张图片

$uri:显示请求的uri

Nginx的优化和防盗链_第21张图片

Nginx的优化和防盗链_第22张图片

$host:显示请求的主机名

Nginx的优化和防盗链_第23张图片

Nginx的优化和防盗链_第24张图片

$request_method显示请求的方法

Nginx的优化和防盗链_第25张图片

Nginx的优化和防盗链_第26张图片

重要的变量:

Proxy_set_header X-Forwarded $remote_addr

代理服务器设置这个变量,客户端的真实ip要发送给后端,否则代理服务器地址会被拉入黑名单

Proxy_set_header X-Real-IP $remote_addr

客户端的真实ip,发送给后端,现在所有的网站都会要求客户端请求时,加上真实ip

防盗链:

防止其他的网站盗用本站图片

 valid_referers none blocked *.kgc.com kgc.com;

        if ( $invalid_referer ) {

          rewrite ^/ http://www.kgc.com/error.png;

          }

valid_referers :设置信任的网站

kgc.com

kgc.com www.kgc.com

None:允许没有http_refer的请求访问资源,请求uri里面可以不包含refer,不带URL

www.kgc.com/ls.jpg

www.kgc.com=www.kgc.com/ls.jpg

Blockd:请求网站时,前面可以不带协议

例如:

不带协议:www.baidu.com

带协议: http://www.baidu.com

if ( $invalid_referer ) {

          rewrite ^/ http://www.kgc.com/error.png;

          }

如果连接资源是来自上面valid_referers定义的信任列表,$valid_referer变为true,执行重定向

如何设置:

准备两个主机:

你可能感兴趣的:(nginx,运维)