Maison  >  Article  >  Opération et maintenance  >  Exemple d'analyse de la configuration de l'anti-hotlink et de l'optimisation des services de Nginx

Exemple d'analyse de la configuration de l'anti-hotlink et de l'optimisation des services de Nginx

王林
王林avant
2023-05-15 10:31:12956parcourir

      Masquer le numéro de version de nginx

      Voir la version Non.

      Méthode 1 : commande curl

      Vous pouvez utiliser la commande curl -I http://192.168.80.130 dans CentOS pour afficher les informations d'en-tête du message de réponse.

      curl -I http://192.168.80.130

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Méthode 2 : Dans Afficher sur la page Web

      1 #Basculez vers le répertoire html et faites-y glisser une image
      cd /usr/local/nginx/html
      #🎜🎜. #2. #Afficher sur la page Web
      http://192.168.59.118/game.png

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      informations de version cachées# 🎜🎜 #

      Méthode 1 : Modifier le fichier de configuration

      1.#修改配置文件
      vim /usr/local/nginx/conf/nginx.conf
       
          ```handlebars
      http {
          include       mime.types;
          default_type  application/octet-stream;
          server_tokens off;                        #添加,关闭版本号
          ......
      }
       
      2.#重启nginx
      systemctl restart nginx
       
      3.#查看版本是否被隐藏
      curl -I http://192.168.80.130

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de NginxMéthode 2 : Modifiez le fichier de code source, recompilez et installez

      Vous pouvez personnaliser le numéro de version, ce qui peut prêter à confusion

      1. #切换至nginx安装包所在目录
      cd /opt/
      2. #停止nginx服务
      systemctl stop nginx.service
      3. #切换至安装目录
      cd nginx-1.12.0/
      4. #切换至内核目录
      cd src/core/
      5. #进入配置文件
      vim nginx.h
      
      #define NGINX_VERSION      "老铁"
      #define NGINX_VER          "666/" NGINX_VERSION
      
      6. #切换至文件目录
      cd ../../
      
      7. #编译
      ./configure \
      --prefix=/usr/local/nginx \
      --user=nginx \
      --group=nginx \
      --with-http_stub_status_module
      
      8. #安装
      make && make install -j4
      
      9. #将配置文件下的之前关闭版本信息开启
      vim /usr/local/nginx/conf/nginx.conf
      server_tokens on;
      
      10. #重启nginx
      systemctl restart nginx
      
      11. #查看版本信息
      curl -I http://192.168.59.118

      Modifier les utilisateurs et les groupes

      1. #修改配置文件
      vim /usr/local/nginx/conf/nginx.conf
      
      user  dayu dayu; #取消注释,修改用户为 dayu ,组为 dayu
      
      2. #创建非登录用户
      useradd -s /sbin/nologin dayu
      
      3. #重启服务
      systemctl restart nginx
      
      4. #查看是否修改成功
      ps aux | grep nginx

      #🎜 🎜#

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Cache timeExemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Quand nginx renvoie le données de la page Web au client, le temps de cache peut être défini pour faciliter le retour direct lors de la demande du même contenu à l'avenir, évitant ainsi les demandes répétées et accélérant l'accès. Généralement, le temps de cache est défini pour les pages Web statiques, et aucun temps de cache. est défini pour les pages Web dynamiques.

      1. #修改配置文件
      vim /usr/local/nginx/conf/nginx.conf
              #添加以下内容
              location ~ \.(jpg|png|bmp|gif)$ {
                  root   html;
                  expires 1d;
              }
      
      
      2. #查看是否有语法错误
      nginx -t
      
      3. #重启服务
      systemctl restart nginx.service 
      
      4.#在网页中查看服务
      http://192.168.80.130/good.jpg
      
       Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。
      也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,
      而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Log FractionnementExemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      À mesure que la durée d'exécution de Nginx augmente, le les journaux générés augmenteront progressivement. Afin de comprendre facilement l'état d'exécution de Nginx, vous devez toujours faire attention au fichier journal de Nginx. Les fichiers journaux trop volumineux sont un désastre pour la surveillance et peu pratiques pour l'analyse et le dépannage. Les fichiers journaux doivent être supprimés régulièrement.

      1. #写脚本
      vim /usr/local/nginx/nginx_log.sh 
      
      #!/bin/bash
      #this is for divide nginx log
      d=$(date +%F -d -1day)                                       #显示前一天的时间
      path="/var/log/nginx"   
      pid="/usr/local/nginx/logs/nginx.pid"
      
      [ -d $path ] ||mkdir -p $path                                #创建日志文件目录
      mv /usr/local/nginx/logs/access.log ${path}/www.yxp.com-$d   #移动并重命名日志文件
      kill -USR1 $(cat $pid)                                       #重建新日志文件
      find $path -mtime +30 -delete                                #删除30天之前的日志文件
      
      2. #赋予权限
      chmod +x /usr/local/nginx/nginx_log.sh 
      
      3. #计划任务
      [root@localhost nginx]#crontab -e
      
      30 1 * * * /usr/local/nginx/nginx_log.sh

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Configurer Nginx pour implémenter la connexion timeout Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      HTTP a un mode KeepAlive, qui indique au serveur Web de maintenir la connexion TCP ouverte après le traitement d'une requête. Si d'autres requêtes du même client sont reçues, le serveur utilisera cette connexion non fermée sans établir une autre connexion.

      KeepAlive reste ouvert pendant un certain temps, pendant lequel ils consomment des ressources. En prendre trop affectera les performances.

      vim /usr/ local/nginx/conf/nginx. conf
      http {
      ......
      keepalive_ timeout 65 180;
      client header timeout 80;
      client_ body_ timeout 80;
      ......
      }
      systemctl restart nginx

      keepalive_ timeout

      Spécifiez le délai d'expiration de KeepAlive. Spécifiez la durée maximale pendant laquelle chaque connexion TCP peut être maintenue, après quoi le serveur fermera la connexion.
      • La valeur par défaut de Nginx est de 65 secondes. Certains navigateurs ne maintiennent qu'un maximum de 60 secondes, elle peut donc être définie sur 60 secondes. S'il est défini sur 0, les connexions keepalive sont désactivées.
      • Le deuxième paramètre (facultatif) spécifie la valeur temporelle dans l'en-tête de réponse Keep-Alive : timeout=time. Cet en-tête permet à certains navigateurs de fermer activement la connexion, afin que le serveur n'ait pas à fermer la connexion. Sans ce paramètre, Nginx n'enverra pas l'en-tête de réponse Keep-Alive.
      • client_ header_ timeout

      Le délai d'attente pour que le client envoie un en-tête de requête complet au serveur . Si le client n'envoie pas un en-tête de requête complet dans le délai spécifié, Nginx renvoie HTTP 408 (Request Timed Out).

      client_ body_ timeout

      Spécifiez le délai d'attente pour l'envoi du corps de requête une fois que le client a établi une connexion avec le serveur. Si le client n'envoie rien dans le délai spécifié, Nginx renvoie HTTP 408 (Request Timed Out).

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      更改Nginx运行进程数

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

      更改进程数的配置方法

      修改配置文件,修改进程配置参数

      修改配置文件的worker_processes参数

      • 一般设为CPU的个数或者核数

      • 在高并发的情况下可设置为CPU个数或者核数的2倍

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

      使用ps aux查看运行进程数的变化情况

      [root@www conf]# cat /proc/cpuinfo | grep -c "physical"
      4
      [root@www conf]# vi nginx.conf
      worker_ processes 4;
      [root@www conf]# systemctl restart nginx
      [root@www conf]# ps aux | grep nginx

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

      [root@www conf]# vi nginx.conf
      worker_ processes 4;
      worker_ cpu_ affinity 0001 0010 0100 1000;
       
      1代表CPU的位置

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      配置Nginx实现网页优化压缩功能

      • Nginx的ngx_http_ gzip_module压缩模块提供对文件内容压缩的功能

      • 允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装

      • 可在配置文件中加入相应的压缩功能参数对压缩性能进行优化

      压缩功能参数

      1. #修改配置文件
         gzip on;                          #取消注释,开启gzip压缩功能
         gzip_min_length 1k;              #最小压缩文件大小
         gzip_buffers 4 16k;              #压缩缓冲区,大小为4个16k缓冲区
         gzip_http_version 1.1;           #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
         gzip_comp_level 6;               #压缩比率
         gzip_vary on;                    #支持前端缓存服务器存储压缩页面
         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;       #压缩类型,表示哪些网页文档启用压缩功能
      
      2. #重启服务
      systemctl restart nginx.service 
      
      
      3. #网页查看
      http://192.168.59.118/game.png

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      配置防盗链

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

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

      vim /usr/ local/nginx/conf/nginx. conf
      http {
      ......
         server {
           ......
       
          location ~* \. (jpglgiflswf)$ {
       
            valid_ referers none blocked * . kgc. com kgc . com;
       
              if ( $invalid referer ) {
       
              rewrite ^/ http: I /www. kgc. com/error。pngi
       
                 #return 403;
       
               }
       
            }
       
        ......
       
         }
      }

      ~* \. (jpgIgifIswf)$ :这段正则表达式表示匹配不区分大小写,以.jpg或.gif 或.swf结尾的文件:
       
      valid_ referers :设置信任的网站,可以正常使用图片:
       
      none:允许没有http_refer的请求访问资源(根据Referer的定义,它的作用是指示一个请求是从哪里链接过来的,如果直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含Referer 字段的),如http:/ /www.dayu.com/ game.jpg
       
      我们使用http://www. dayu.com访问显示的图片,可以理解成http://www. dayu.com/game.jpg这个请求是从http://www. dayu.com这个链接过来的。
       
      blocked: 允许不是http://开头的, 不带协议的请求访问资源;
       
      *. dayu. com: 只允许来自指定域名的请求访问资源,如http://www. dayu.com
       
      if语句:如果链接的来源域名不在valid_ referers所列出的列表中,$invalid_ referer为true, 则执行后面的操作,即进行重写或返回403 页面。

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      第二台机器配置内容:

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

       现在还是可以正常显示的

      Exemple danalyse de la configuration de lanti-hotlink et de loptimisation des services de Nginx

      Maintenant, l'image antivol apparaît

      Supplémentaire : Questions d'entretien : Quels modules nginx ont été utilisés et quelles optimisations ont été effectuées

      gzip ### Compression des données du site Web
      réécriture ### Réécriture d'adresse
      stub_ status ### Statistiques sur l'état du service nginx
      ssl prend en charge https, ### Vous devez d'abord utiliser l'outil openss1 ou TLS pour générer le certificat et les fichiers de clé privée pertinents. Appelez ensuite le certificat et la clé privée dans la configuration du module SSL
      upstream ### Utilisez nginx comme cluster Web proxy inverse et définissez le pool de serveurs du cluster
      stream ### Utilisé pour définir un proxy inverse à 4 couches
      auth_ basic ### Authentification de l'utilisateur
      fastcgi ​ ### Transférer la requête vers php
      --with-module name ​ ### Activer le module
      --without-module name ​ ### Désactiver le module

      Masquer le numéro de version, la compression, le cache , anti-hotlinking, maintenance continue, optimisation du nombre de processus de travail et de connexions de processus, fractionnement des journaux et proxy inverse

      Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

      Déclaration:
      Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer