中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Nginx防盜鏈與服務優化配置的示例分析

發布時間:2022-03-04 10:58:12 來源:億速云 閱讀:134 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Nginx防盜鏈與服務優化配置的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

      隱藏nginx版本號

      查看版本號

      方法一:curl命令

      可以在 CentOS 中使用命令 curl -I http://192.168.80.130 顯示響應報文首部信息。

      curl -I http://192.168.80.130

      Nginx防盜鏈與服務優化配置的示例分析

      方法二:在網頁中查看

      1. #切換至html目錄,拖一個圖片進去
      cd /usr/local/nginx/html

      2. #在網頁中查看
      http://192.168.59.118/game.png

      Nginx防盜鏈與服務優化配置的示例分析

      隱藏版本信息

      方法一:修改配置文件

      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

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      方法二: 修改源碼文件,重新編譯安裝

      可以自定義版本號,可以讓人迷惑

      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

      修改用戶與組

      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

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      緩存時間

      當nginx將網頁數據返回給客戶端后,可設置緩存時間,以方便在日后進行相同內容的請求時直接返回,避免重復請求,加快了訪問速度一般針對靜態網頁設置,對動態網頁不設置緩存時間。

      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 服務器重新發出請求,減少了服務器的使用帶寬。

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      日志分割

      隨著Nginx運行時間的增加,產生的日志也會逐漸增加,為了方便掌握Nginx的運行狀態,需要時刻關注Nginx日志文件。太大的日志文件對監控是一個大災難,不便于分析排查,需要定期的進行日志文件的切割。

      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

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      配置Nginx實現連接超時

      HTTP有一個KeepAlive模式,它告訴web服務器在處理完一個請求后保持這個TCP連接的打開狀態。若接收到來自同一客戶 端的其它請求,服務端會利用這個未被關閉的連接,而不需要再建立一個連接。

      KeepAlive在一段時間內 保持打開狀態,它們會在這段時間內占用資源。占用過多就會影響性能。

      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

      • 指定KeepAlive的超時時間(timeout) 。指定每個TCP連接最多可以保持多長時間,服務器將會在這個時間后關閉連接。

      • Nginx的默認值是65秒,有些瀏覽器最多只保持60秒,所以可以設定為60秒。若將它設置為0,就禁止了keepalive 連接。

      • 第二個參數(可選的)指定了在響應頭Keep-Alive: timeout=t ime中的time值。這個頭能夠讓一 些瀏覽器主動關閉連接,這樣服務器就不必去關閉連接了。沒有這個參數,Nginx 不會發送Keep- Alive 響應頭。

      client_ header_ timeout

      客戶端向服務端發送-一個完整的request header 的超時時間。如果客戶端在指定時間內沒有發送一個完整的request header, Nginx返回HTTP 408 (Request Timed Out) 。

      client_ body_ timeout

      指定客戶端與服務端建立連接后發送requestbody的超時時間。如果客戶端在指定時間內沒有發送任何內容,Nginx返回HTTP 408 (Request Timed Out )。

      Nginx防盜鏈與服務優化配置的示例分析

      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的位置

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      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

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      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 頁面。

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      第二臺機器配置內容:

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

      Nginx防盜鏈與服務優化配置的示例分析

       現在還是可以正常顯示的

      Nginx防盜鏈與服務優化配置的示例分析

      現在防盜圖出現

      補充:面試題:用過哪些nginx的模塊和做過哪些優化 

      gzip       ### 網站數據壓縮
      rewrite       ### 地址重寫
      stub_ status     ###  統計nginx服務狀態
      ssl 支持https,      ### 得先用openss1或者TLS工具生成相關證書和私鑰文件。再在ssl模塊配置中調用證書和私鑰
      upstream      ### 使用nginx做反向代理web群集,定義群集服務器池
      stream       ### 用于定義4層反向代理的
      auth_ basic     ### 用戶認證
      fastcgi        ### 轉發請求給php
      --with-模塊名       ### 開啟模塊
      --without-模塊名     ### 禁用模塊
       
      隱藏版本號 、壓縮、緩存、防盜鏈、連續保持、優化工作進程和進程連接數、日志分割、反向代理 

      感謝各位的閱讀!關于“Nginx防盜鏈與服務優化配置的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

      向AI問一下細節

      免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

      AI

      高密市| 淮安市| 阳春市| 尖扎县| 达孜县| 镇宁| 洛阳市| 呼玛县| 青冈县| 象州县| 抚州市| 刚察县| 鄄城县| 华阴市| 乐亭县| 濮阳县| 资中县| 定州市| 海兴县| 宜兰市| 友谊县| 肥西县| 汾阳市| 大洼县| 林西县| 丰台区| 安岳县| 马山县| 长丰县| 孟村| 蓝山县| 突泉县| 海晏县| 宾阳县| 东山县| 汾阳市| 宜宾县| 页游| 四会市| 旅游| 上饶县|