Nginx网页优化(二)

Nginx网页优化(二)

更改Nginx运行进程数

  • 在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
  • 可以使用ps aux命令查看Nginx运行进程的个数
  • 更改进程数的配置方法

    成都创新互联主营梅里斯网站建设的网络公司,主营网站建设方案,成都APP应用开发,梅里斯h5重庆小程序开发公司搭建,梅里斯网站营销推广欢迎梅里斯等地区企业咨询

    • 修改配置文件,修改进程配置参数
  • 修改配置文件的worker_ processes参数

    • 一般设为CPU的个数或者核数
    • 在高并发情况下可设置为CPU个数或者核数的2倍
  • 运行进程数多-些,响应访问请求时,Nginx就不会临时启动新的进程提供服务,减少了系统的开销,提升了服务速度
  • 使用ps aux查看运行进程数的变化情况

  • 默认情况,Nginx的多个进程可能跑在一个CPU上, 可以分配不同的进程给不同的CPU处理,充分利用硬件多核多CPU
  • 在一台4核物理服务器,可进行以下配置,将进程进行分配
    • Worker_ cpu_affinity 0001 0010 0100 1000

配置实例

[root@localhost conf]# ps aux | grep nginx      //查看进程数
root       5278  0.0  0.0  20548   612 ?        Ss   15:17   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx      5279  0.0  0.0  23076  1396 ?        S    15:17   0:00 nginx: worker process
root       5295  0.0  0.0 112728   972 pts/0    S+   15:18   0:00 grep --color=auto nginx
[root@localhost ~]# cd /proc/     //进入设备目录
[root@localhost proc]# cat cpuinfo       //查看cpu信息
processor   : 0 
vendor_id   : GenuineIntel
cpu family  : 6
...//省略部分内容...                               //第一个cpu信息
clflush size    : 64
cache_alignment : 64
address sizes   : 43 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
...//省略部分内容...
clflush size    : 64                 //第二个cpu信息
cache_alignment : 64
address sizes   : 43 bits physical, 48 bits virtual
power management:
[root@localhost proc]# vim /usr/local/nginx/conf/nginx.conf    //进入编辑nginx配置文件
#user  nobody;
worker_processes  2;             //增加cpu个数
worker_cpu_affinity 01 10;       //设置平均分配访问请求

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}
...//省略部分内容...
:wq
[root@localhost proc]# systemctl restart nginx.service      //重启服务
[root@localhost proc]# ps aux | grep nginx       //查看进程数
root       1813  0.0  0.0  20548   616 ?        Ss   15:32   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx      1814  0.0  0.0  23076  1400 ?        S    15:32   0:00 nginx: worker process
nginx      1815  0.0  0.0  23076  1400 ?        S    15:32   0:00 nginx: worker process
//增加进程数
root       1823  0.0  0.0 112728   972 pts/0    S+   15:32   0:00 grep --color=auto nginx

配置Nginx实现网页压缩功能

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

压缩功能参数讲解

  • gzip on:开启gzip压缩输出
  • gzip_min_length 1k:用于设置允许压缩的页面最小字节数
  • gzip_buffers 4 16k:表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
  • zip_http_version 1.0:用于设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,但处理最慢,也比较消耗服务器CPU资源
  • gzip_comp_level 2:用来指定gzip压缩比,1压缩比最小,处理速度最快; 9压缩比最大,传输速度快,但处理速度最慢,使用默认即可
  • gzip_types text/plain:压缩类型,是就对哪些网页文档启用压缩功能
  • gzip_vary on:选项可以让前端的缓存服务器缓存经过gzip压缩的页面

将以上的压缩功能参数加入到主配置文件httpd配置中段

配置实例

[root@localhost proc]# cd /usr/local/nginx/conf/       //进入配置文件目录
[root@localhost conf]# vim nginx.conf                 //编辑配置文件
...//省略部分内容...
    #keepalive_timeout  0;
    keepalive_timeout  65 180;
    client_header_timeout 80;
    client_body_timeout 80;

    gzip  on;                               //开启压缩功能
    gzip_min_length 1k;                     //编辑压缩功能条目
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    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_vary on;

    server {
        listen       80;
        server_name  localhost;
...//省略部分内容...
:wq
[root@localhost conf]# systemctl restart nginx.service     //重启服务
  • 在客户机中访问网页,并使用抓包工具查看是否开启压缩功能

Nginx网页优化(二)Nginx网页优化(二)

配置Nginx实现防盗链

  • 在企业网站服务中,- -般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失
  • Nginx防盗链功能也非常强大。默认情况下,只需要进行简单的配置,即可实现防盗链处理

配置实例

[root@localhost ~]# mount.cifs //192.168.100.10/lamp-c7 /mnt/  //将准备的防盗链图片目录挂载到Linux系统
Password for root@//192.168.100.10/lamp-c7: 
root@localhost mnt]# cd /mnt/        //进入挂载目录
[root@localhost mnt]# ls
apr-1.6.2.tar.gz       cronolog-1.6.2-14.el7.x86_64.rpm  httpd-2.4.29.tar.bz2  MySQL-5.6.26.tar.gz
apr-util-1.6.0.tar.gz  Discuz_X2.5_SC_UTF8.zip           LAMP-php5.6.txt       nginx-1.12.0.tar.gz
awstats-7.6.tar.gz     error.png                         miao.jpg              php-5.6.11.tar.bz2
[root@localhost mnt]# cp error.png /usr/local/nginx/html/      //将防盗链图片复制到nginx站点目录
[root@localhost mnt]# cd /usr/local/nginx/html/          //进入站点目录
[root@localhost html]# ls                      //查看
50x.html  error.png  index.html  miao.jpg      //图片成功复制
[root@localhost html]# yum install bind -y     //安装DNS功能
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
...//省略部分内容...
已安装:
  bind.x86_64 32:9.11.4-9.P2.el7                                                                 
作为依赖被安装:
  bind-export-libs.x86_64 32:9.11.4-9.P2.el7                                                     
作为依赖被升级:
  bind-libs.x86_64 32:9.11.4-9.P2.el7                  bind-libs-lite.x86_64 32:9.11.4-9.P2.el7   
  bind-license.noarch 32:9.11.4-9.P2.el7               bind-utils.x86_64 32:9.11.4-9.P2.el7      
  dhclient.x86_64 12:4.2.5-77.el7.centos               dhcp-common.x86_64 12:4.2.5-77.el7.centos 
  dhcp-libs.x86_64 12:4.2.5-77.el7.centos             
完毕!
[root@localhost html]# vim /etc/named.conf      //编辑DNS主配置文件
...//省略部分内容...
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
...//省略部分内容...
:wq
[root@localhost html]# vim /etc/named.rfc1912.zones     //编辑DNS区域配置文件
...//省略部分内容...
zone "kgc.com" IN {
        type master;
        file "kgc.com.zone";
        allow-update { none; };
};
...//省略部分内容...
:wq
[root@localhost named]# cp -p named.localhost kgc.com.zone    //复制DNS区域数据文件,并更改文件名
[root@localhost named]# vim kgc.com.zone        //编辑DNS区域数据配置文件
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.144.133            //设置解析地址
:wq
[root@localhost named]# systemctl start named      //启动DNS服务
  • 打开一台win10 客户机与一台win 7客户,在win 7客户机中安装web服务,建立盗链网站,并在客户机中测试访问网站

Nginx网页优化(二)Nginx网页优化(二)Nginx网页优化(二)Nginx网页优化(二)Nginx网页优化(二)Nginx网页优化(二)

Nginx网页优化(二)Nginx网页优化(二)Nginx网页优化(二)Nginx网页优化(二)

[root@localhost html]# cd ../conf/             //进入nginx配置文件目录
[root@localhost conf]# vim nginx.conf         //编辑配置文件
...//省略部分内容...
# redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~*\.(jpg|gif|swf)$ {         //在server模块下添加防盗链条目
             valid_referers none blocked *.kgc.com kgc.com;
             if ( $invalid_referer ) {
                 rewrite ^/ http://www.kgc.com/error.png;
            }
        }
...//省略部分内容...
:wq
[root@localhost conf]# systemctl restart nginx.service
  • 在win 10客户机中测试防盗链功能是否开启

Nginx网页优化(二)


网站标题:Nginx网页优化(二)
网站网址:http://azwzsj.com/article/jeosid.html