Nginx网页优化服务

nginx隐藏版本号

直接隐藏版本号

  1. 隐藏版本号可以避免安全漏洞的泄露、防止黑客攻击

在这里插入图片描述

  1. 修改nginx.conf配置文件

     vi /etc/nginx.conf
    
     server_tokens off;
    

在这里插入图片描述

  1. 重启nginx

     killall -3 nginx
     nginx
    

在这里插入图片描述

  1. 此时可以看到nginx,但是后面的版本号已经看不到了
    在这里插入图片描述

修改网页服务来隐藏版本号

  1. 修改配置

      vi /etc/nginx.conf
    
     server_tokens on;
    

在这里插入图片描述

  1. 修改nginx.h文件

     vi nginx-1.12.2/src/core/nginx.h
    
     #define nginx_version      1002001
     #define NGINX_VERSION      "1.2.2"
     #define NGINX_VER          "IIS/" NGINX_VERSION
    

在这里插入图片描述

  1. 编译安装并重启

    killall -3 nginx
    cd nginx-1.12.2/
    make && make install
    nginx

在这里插入图片描述

  1. 抓包查看结果

在这里插入图片描述

修改Nginx用户和组

Nginx运行时进程需要有用户与组的支持,以实现对网站文件付出时进行访问控制
Nginx默认使用nobady用户账号与组帐号

  1. 查看nginx运行账户

     ps aux | grep nginx
    

在这里插入图片描述

  1. 创建一个不可登陆账户给ngxin使用,安装依赖包

     useradd -M -s /sbin/nologin nginx
     cd nginx-1.12.2/
    
      ./configure \
     --prefix=/usr/local/nginx \
     --user=nginx \
     --group=nginx \
    
     vi /etc/nginx.conf
    
     user  nginx nginx;
    

在这里插入图片描述
在这里插入图片描述

  1. 重启nginx

     killall -3 nginx 
     nginx
    

在这里插入图片描述

Nginx网页缓存时间

  1. 未设置缓存时间的
    在这里插入图片描述

  2. 修改配置文件

当Nginx将网页数据返回给客户端后,可设置缓存的空间,以方便在日后进行相同内容的请求时直接返回,面重复请求,加快了访问速度,但是仅仅针对静态网页进行设置,动态网页不设置缓存时间

  1. 修改nginx.conf

     vi /etc/nginx.conf 
    
     location ~ \.(gif|jpg|jped|png|bmp|ico)$ {
          root html;
          expires 1d;
     }
    

在这里插入图片描述

  1. 添加图片,并在浏览器验证

     cd  /usr/local/nginx/html
     ls -lh
     vi index.html
     <img src="time.jpg" />
    

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 重启服务,查看缓存时间

在这里插入图片描述

2.加入过期参数

设置方法
修改在配置文件,在http段、或者server段、或者location段加入对特定内容的过期参数

vi /etc/nginx.conf 

expires 1d;

在这里插入图片描述

  1. 重启查看效果
    在这里插入图片描述

Nginx日志切割

  • 随着Nginx运行时间增加,日志也会增加。为了方便掌握Nginx运行窗台,需要关注Nginx日志文件
  • 太大的日志文件对监控是一个大灾难
  • Nginx自身不具备日志分割处理的功能,但是可以通过Nginx信号控制功能的脚本实现日志的自动切割
  • 通过Linux的计划任务周期性的进行日志分割
  1. 实现Nginx日志切割的步骤
    1.设置时间变量
    2.设置保存日志路径
    3.将目前的日志文件进行重命名
    4.重建新日志文件
    5.删除时间过长的日志文件
    6.设置cron任务,定期执行脚本自动进行日志分割

  2. 获取日期

     date "+%Y%m%d"           当天日期
     date -d "-1 day" "+%Y%m%d"     昨天日期
     date -d "+1 day" "+%Y%m%d"    明天日期
    

在这里插入图片描述

  1. nginx日志文件路径

     cd /usr/local/nginx/logs/
    
  2. 编写脚本

     vim fenge.sh
    
     #!/bin/bash
     #日志分割
     d=$(date -d "-1 day" "+%Y-%m-%d")
     logs_path="/var/log/nginx"
     pid_path="/usr/local/nginx/logs/nginx.pid"
     [ -d $logs_path ] || mkdir $logs_path
     mv /usr/local/nginx/logs/test.com.access.log ${logs_path}/giao.com.access.log-$d
     kill -HUP $(cat $pid_path)
     find $logs_path -mtime +60 | xargs rm -rf
    

在这里插入图片描述

  1. 给脚本执行权限

     cd /usr/local/nginx/logs/
     chmod +x access.log
     cd
     chmod +x fenge.sh
     ./fenge.sh
    
  2. 日志分割后路径

     cd /var/log/nginx/
    

在这里插入图片描述

  1. 执行脚本测试

     cat giao.com.access.log-20201130 
    

在这里插入图片描述

  1. 设置任务计划

查看sh脚本的绝对路径

which sh

crontab -e

crontab -l

在这里插入图片描述

在这里插入图片描述

配置Nginx连接超时

为避免同以客户端长时间占用连接,造成资源浪费,可以设置相应的连接超时参数,实现控制连接访问时间

超时参数

参数作用
Keepalive_timeout设置连接保持超时时间
Cient_header_timeout指定等待客户端发送请求头的超时时间
Client_body_timeout设置请求体读取超时时间
  1. 编辑配置文件

     vi /etc/nginx.conf
    
    keepalive_timeout  65 180;
    client_header_timeout 80;
    client_body_timeout 80;
    

在这里插入图片描述

  1. 重启查看浏览器
    在这里插入图片描述

更改Nginx运行进程数

在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞

  1. 更改进程数的配置方法
    修改配置文件 ,修改进程配置参数

  2. 修改配置文件的work_processes参数
    *一般设为CPU的个数或者核数
    *在高并发情况下可设置为CPU个数或者核数的2倍

  3. 增加进程数,可减少系统开销,提升服务速度

  4. 查看CPU核心数,查看进程

     cat /proc/cpuinfo | grep -c "physical"
     ps -aux | grep nginx
    

在这里插入图片描述

  1. 修改配置

     worker_processes  8;
     worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
    
    use epoll;
    worker_connections  4096;
    

在这里插入图片描述

  1. 语法检查,重启,查看

      ulimit -n 65535 >> /etc/rc.local
      nginx -t
      killall -3 nginx 
      nginx
      ps -aux | grep nginx
    

在这里插入图片描述
在这里插入图片描述

Nginx网页压缩功能

  1. Nginx的ngx_http_gzip_module压缩模块提供对文件内容的压缩功能
  2. 允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体检,默认以安装
  3. 可在配置文件中加入相应的压缩功能参数对压缩性能进行优化
参数压缩功能
gizp on开启gzip压缩输出
gzip_min_length 1k设置允许压缩的页面最小字节数
gzip_buffers 4 16k申请4个单位为16k的内存作为压缩结果流缓存,默认值时申请与原始数据大小相同内存空间来存储gzip压结果
gzip_http_version 1.0设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,但处理较慢,也比较消耗服务器CPU资源
gzip_comp_level 2指定gzip压缩比,1压缩比最小,处理最快9压缩比最大,传输读速块,但是处理速度慢
gzip_types text/plain压缩类型,对那些网页文档启用压缩功能
gzip_vary on让钱多缓存服务器缓存经过gzip压缩的页面
  1. 配置文件
  vi /etc/nginx.conf 

    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;

在这里插入图片描述

  1. 重启服务,在浏览器上
    在这里插入图片描述

Nginx防盗链

  1. 在企业网站服务中,一般都要配置防盗链功能,以避免网站内容被非法盗用,造成经济损失。

  2. Nginx防盗链功能也非常强大。默认情况下,只需要进行简单的配置,即可实现防盗链处理。

  3. 修改配置

     vi /etc/nginx.conf
    
     location ~* \.(jpg|gif|swf)$ {
          valid_referers none blocked *.giao.com giao.com 20.0.0.10;
          if ($invalid_referer ) {
          rewrite ^/ http://www.giao.com/error.png;
          }
     }
    

在这里插入图片描述

  1. 在另一台设备上安装http或是nginx去盗用图片测试
    到网站根目录编辑index.html文件

     vi /usr/local/nginx/html/index.html
     <img src="http://20.0.0.10/time.jpg"/>
     vi /etc/hosts
     20.0.0.10  www.giao.com
    

防盗链未开启
在这里插入图片描述

防盗链开启
在这里插入图片描述

FPM模块优化

  1. Nginx的PHP解析功能实现如果是交由FPM处理的,为了提高PHP的处理速度,可以根据服务器的内存与服务器负载对FPM模块进行参数的调整
    static:将产生固定数量的fpm进程
    dynamic: 将以动态的方式产生fpm进程

  2. FPM优化参数
    Static的方式参数
    pm.max_children:指定启动的进程数量

  3. dynamic的方式参数

参数作用
pm.max_children指定启动的进程的最大值
pm.start_servers动态方式下启动的fpm进程数
pm.min_spare_servers动态方式下最小的fpm空闭进程数
pm.max_spare_servers动态方式下最大的fpm空闭进程数
netstat -anpt | grep 9000
 /usr/local/php/sbin/php-fpm
cd /usr/local/php/etc/php-fpm.d/
	vi www.conf

在这里插入图片描述

刚才修改的参数只有进程号可以直观的看出来,所以通过查看进程号来判断是否修改成功

查看php-fpm进程

ps aux | grep php-fpm
在这里插入图片描述

动态方式下启动的fpm进程数为2

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值