Nginx 深入优化

文章目录

    • 一、更改进程数
    • 二、配置网页压缩
    • 三、FPM 参数优化
    • 四、配置防盗链

一、更改进程数

目的:在高并发的环境中,需要启动更多的 nginx 进程以保证快速响应,用以处理用户的请求,避免造成阻塞。

(1)可使用命令:ps aux | grep nginx ,查看 nginx 的运行个数。
在这里插入图片描述
其中,master process 是主进程;worker process 是子进程;以上可以看出主进程和子进程各是一个。

(2)修改 nginx 配置文件中的 worker_processes 参数,一般设置为 CPU 的个数或者核数,在高并发的情况下,可设置为 CPU 的个数或者核数的 2倍。此时把虚拟机处理器个数改成2个,在查看一下。

1、查看CPU核数命令: cat /proc/cpuinfo |grep -c "physical"
在这里插入图片描述2、修改 nginx配置文件中的参数,可以设置分配不同进程给不同CPU处理,以达到CPU的性能最大化。

worker_processes  2;            //参数设置成2;
worker_cpu_affinity 01 10;      //分配进程;

在这里插入图片描述
(3)重启服务之后,用命令ps 命令查看运行进程的变化。
在这里插入图片描述

二、配置网页压缩

Nginx 的 ngx_http_gzip_module压缩模块提供对文件内容压缩的功能;允许nginx 服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装;可在配置文件中加入相应的压缩功能参数对压缩性能进行优化。

gzip  on;                       //开启gzip压缩功能;
    gzip_min_length 1k;         //设置压缩的页面最小字节数;
    gzip_buffers 4 16k;         //申请4个单位为16KB的内存作为压缩结果流缓存;
    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 application/json;
    //压缩类型,是指对那些网页文档启用压缩功能;
    gzip_disable "MSIE [1-6]\.";  
    //配置禁用gzip条件,支持正则表达式,表示ie6以下版本不启用gzip;
    gzip_vary on;
    //表示支持very header,可以让前端的缓存服务器经过gzip压缩页面;

Nginx 深入优化_第1张图片
(1)在nginx网页html中,添加一张图片:
Nginx 深入优化_第2张图片
Nginx 深入优化_第3张图片
(2)重启服务后,访问网站抓取数据报文,查看是否使用了gzip压缩:
Nginx 深入优化_第4张图片

三、FPM 参数优化

Nginx 的PHP解析功能实现如果是交给FPM 处理的,为了提高PHP的处理速度,可对FPM 模块进行参数的调整。

(1)首先安装带有 FPM模块的PHP 环境,保证PHP 可以正常运行

(2)FPM 进程有两种启动方式,由pm 参数指定,分别是 static 和dynamic,前者将产生固定的 fpm进程,后者将以动态的方式产生 fpm进程。

(3)FPM优化参数讲解:
Nginx 深入优化_第5张图片

vim php-fpm.conf

pid = run/php-fpm.pid
pm = dynamic
pm.max_children=20          //static模式下空闲进程数上限,大于下面的值;
pm.start_servers = 5        //动态方式默认开启的进程数,在最小和最大之间
pm.min_spare_servers = 2    //动态方式下最少空闲进程数
pm.max_spare_servers = 8    //动态方式下最大空闲进程数

四、配置防盗链

和Apache一样,在企业网站服务当中,一般都要配置防盗链,以避免网站内容被非法盗用,造车损失,和带宽浪费。Nginx 的防盗链功能十分强大,在默认的情况下,进行简单的配置,即可实现防盗链。

####实验说明:准备两台虚拟机,一台作为网站源主机,一台作为盗链网站(盗用源主机的图片);在源主机上设置防盗链,禁止除本地外的其他网站盗链。

IP地址 用途
192.168.220.140 (域名:www.kgc.com) 源主机
192.168.220.132 盗链主机

(1)第一步:一台win10虚拟机,做盗链网站,为了实验效果,做一个txt文档,然后修改其扩展名为 html即可。

1、txt文档内容如下:
Nginx 深入优化_第6张图片
2、修改扩展名:
控制面板 → 程序 →启用或关闭Windows功能 →开启Internet Information Service
将文件拖到c盘---------inetpub-------wwwroot 中去:
Nginx 深入优化_第7张图片
3、关闭防火墙,防止数据被拦截。

(2)第二步:访问盗链网站,查看是否盗链成功。

1、这是盗链网站图片:
Nginx 深入优化_第8张图片
2、这是源网站图片:
Nginx 深入优化_第9张图片

(3)第三步:现在,在源主机上设置防盗链,禁止其他网站盗用上面这张熊猫图片。

1、修改nginx配置文件,添加以下代码:

 location ~*\.(jpg|gif|swf)$ {
       
              //这段正则表达式,表示不区分大小写,以jpg、gif、swf结尾的文件;
           valid_referers none blocked *.kgc.com kgc.com;  
              //信任以kgc.com域名为结尾的网站访问;
           if ( $invalid_referer ) {
     
            rewrite ^/ http://www.kgc.com/error.png;
              //如果链接的来源域名不在valid_referers 的所列中,则执行后面的操作,即把error.png放到源主机工作目录下;
            }
         }

Nginx 深入优化_第10张图片
2、重启服务

[root@Nginx conf]# systemctl stop nginx.service 
[root@Nginx conf]# systemctl start nginx.service 

(4)第四步:此时防盗链已经设置成功,再次访问盗链网站,查看结果。
Nginx 深入优化_第11张图片

你可能感兴趣的:(web服务器群集,nginx深入优化,nginx设置防盗链)