nginx服务优化配置(进程、压缩、防盗链)

优化的目录:

一、更改进程数
二、配置网页压缩
三、配置防盗链

一、更改进程数

在高并发环境中,需要启动更多的nginx进程以保证快速响应,用以处理用户的请求,避免造成阻塞。使用ps aux命令查看Nginx运行的进程的个数。

[root@localhost html]# ps aux | grep nginx
root      10825  0.0  0.0  20544   616 ?        Ss   16:53   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     10826  0.0  0.0  23072  1404 ?        S    16:53   0:00 nginx: worker process
root      10842  0.0  0.0 112728   968 pts/1    S+   16:53   0:00 grep --color=auto nginx

其中master process是主进程,开启了一个,worker process是子进程,也是开启了一个

(1)修改nginx的文件中的worker_process参数,一般设为CPU的个数或核数,在高并发的情况下,可设置为CPU的个数或者核数的2倍,可以先查看CPU的核数以确定参数。

[root@localhost ~]# cat /proc/cpuinfo | grep -c "physical"
2

参数设置为2,和CPU核数相同,运行进程数设置多一些,响应客户端请求时,Nginx就不会临时启动新的进程提供服务,减少了系统的开销,提升了服务的速度。

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
worker_processes  2;         #修改为核数相同或者2倍
worker_cpu_affinity 01 10;   #设置每个进程由不同CPU处理

(2)修改完后,重启服务,查看运行进程数的变化。

[root@localhost ~]# service nginx restart 
[root@localhost ~]# ps aux | grep nginx
root      10385  0.0  0.0  20544   612 ?        Ss   16:14   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     10386  0.0  0.0  23072  1400 ?        S    16:14   0:00 nginx: worker process
nginx     10387  0.0  0.0  23072  1652 ?        S    16:14   0:00 nginx: worker process
root      10626  0.0  0.0 112728   964 pts/1    S+   16:35   0:00 grep --color=auto nginx

开启了一个主进程和2个子进程,可见参数设置起了作用。

2.配置网页压缩

Nginx的ngx_http_gzip_module压缩模块提供了对文件内容压缩的功能,以节约网站的带宽,提升用户的访问体验,默认nginx已经安装该模块,只需要在配置文件加入相应的压缩功能参数对压缩性能进行优化。

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
    gzip on;                             #去掉#开启gzip压缩功能
    gzip_min_length 1k;                  #压缩阈值
    gzip_buffers 4 16k;                  #buffer   大小为4个16k缓冲区大小
    gzip_http_version 1.1;              #压缩版木
    gzip_comp_level 6;                   #压缩比率,最小为1,处理速度快,传输速度慢,9最大压缩比,处理速度慢,传输速度快
    gzip_types text/plain application/x-javascript text/css image/jpg image/jpeg image/png image/gif application/xml text/javascript application/x-httpd-php application/javascript applicationion/json;
    gzip_disable "MSIE [1-6]\.";        #配置禁用gzip条件,支持正则,表示ie6以下不启用gzip
    gzip_vary on;

重启服务,以大小超过1KB的html文件作为nginx网站内容,然后访问网址抓取数据报文,显示使用gzip进行了压缩
在这里插入图片描述
3.配置防盗链

在企业网站服务中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失,也避免不必要的带宽浪费。

(1)先实现盗链

需要准备两台主机模拟盗链,一台主机作为客户端访问盗链网站。

IP地址 域名 用途 系统
192.168.154.131 www.kgc.com 源主机 CentOS7

172.16.10.8 -------------- 客户机 Windows7
1)修改源主机和盗链主机的文件
2)把图片game.jpg放到源主机kgc.com的站点目录下。

[root@localhost ~]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html  game.jpg  index.html error.png

3)在盗链主机192.168.154.162的站点目录下编写盗链页面test.html,盗取源主机www.kgc.com的图片。

[root@localhost html]# vim test.html
<html>
  <head></head>
  <body>
      <h1>this is test web</h1>
      <img src="http://www.kgc.com/game.jpg"/>
  </body>
</html>

4)访问盗链网页http://192.168.154.131 查看是否盗链成功。
在这里插入图片描述
在这里插入图片描述
盗链成功!!!

(2)配置Nginx防盗链

Nginx的防盗原理是加入location项,用正则表达式过滤图片类型文件,对于信任的网址可以正常使用,对于不信任的网址则返回相应的错误图片。在源主机kgc.com的配置文件加入以下代码:

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
  location ~*\.(jpg|gif|swf)$ {
            valid_referers none blocked *.kgc.com kgc.com;
            if ( $invalid_referer ) {
               rewrite ^/ http://www.kgc.com/error.png;
            }
        }

~*.(jpg|gif|swf)$: 匹配不区分大小写,以.jpg 或.gif或 .swf结尾的文件。
valid_referers:设置信任的网站,可以正常使用图片。
none:浏览器中refer为空的情况,就是直接在浏览器访问图片。
blocked:浏览器中refer不为空的情况,但是值被代理或防火墙删除了,这些值不以http://或 https://开头。
后面的网址或域名:refer包含相关字符串的网址。
if语句:如果链接的来源域名不在valid_referers所列出的列表中, $invalid_referer 为1,则执行后面的操作,即进行重写或返回403页面。
1)把图片error.png放到源主机kgc.com的站点目录下

[root@localhost ~]# cd /usr/local/nginx/html/
[root@localhost html]# ls
50x.html  error.png  game.jpg  index.html

2)这时重启服务器,重新访问,说明防盗链成功。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值