目錄
隱藏nginx版本號碼
查看版本號碼
#隱藏版本資訊
修改使用者與群組
#快取時間
日誌分割
#設定Nginx實作連線逾時
更改Nginx运行进程数
配置Nginx实现网页优化压缩功能
压缩功能参数
配置防盗链
補充:面試題:用過哪些nginx的模組和做過哪些優化 
首頁 運維 Nginx Nginx防盜鏈與服務最佳化設定的範例分析

Nginx防盜鏈與服務最佳化設定的範例分析

May 15, 2023 am 10:31 AM
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防盜鏈與服務最佳化設定的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

      本網站聲明
      本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

      熱AI工具

      Undresser.AI Undress

      Undresser.AI Undress

      人工智慧驅動的應用程序,用於創建逼真的裸體照片

      AI Clothes Remover

      AI Clothes Remover

      用於從照片中去除衣服的線上人工智慧工具。

      Undress AI Tool

      Undress AI Tool

      免費脫衣圖片

      Clothoff.io

      Clothoff.io

      AI脫衣器

      Video Face Swap

      Video Face Swap

      使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

      熱門文章

      <🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
      3 週前 By 尊渡假赌尊渡假赌尊渡假赌
      Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
      3 週前 By 尊渡假赌尊渡假赌尊渡假赌
      北端:融合系統,解釋
      3 週前 By 尊渡假赌尊渡假赌尊渡假赌

      熱工具

      記事本++7.3.1

      記事本++7.3.1

      好用且免費的程式碼編輯器

      SublimeText3漢化版

      SublimeText3漢化版

      中文版,非常好用

      禪工作室 13.0.1

      禪工作室 13.0.1

      強大的PHP整合開發環境

      Dreamweaver CS6

      Dreamweaver CS6

      視覺化網頁開發工具

      SublimeText3 Mac版

      SublimeText3 Mac版

      神級程式碼編輯軟體(SublimeText3)

      熱門話題

      Java教學
      1669
      14
      CakePHP 教程
      1428
      52
      Laravel 教程
      1329
      25
      PHP教程
      1273
      29
      C# 教程
      1256
      24
      nginx在windows中怎麼配置 nginx在windows中怎麼配置 Apr 14, 2025 pm 12:57 PM

      如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

      docker怎麼啟動容器 docker怎麼啟動容器 Apr 15, 2025 pm 12:27 PM

      Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

      docker容器名稱怎麼查 docker容器名稱怎麼查 Apr 15, 2025 pm 12:21 PM

      可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

      怎麼查看nginx是否啟動 怎麼查看nginx是否啟動 Apr 14, 2025 pm 01:03 PM

      確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

      docker怎麼創建容器 docker怎麼創建容器 Apr 15, 2025 pm 12:18 PM

      在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

      nginx怎麼查版本 nginx怎麼查版本 Apr 14, 2025 am 11:57 AM

      可以查詢 Nginx 版本的方法有:使用 nginx -v 命令;查看 nginx.conf 文件中的 version 指令;打開 Nginx 錯誤頁,查看頁面的標題。

      nginx怎麼配置雲服務器域名 nginx怎麼配置雲服務器域名 Apr 14, 2025 pm 12:18 PM

      在雲服務器上配置 Nginx 域名的方法:創建 A 記錄,指向雲服務器的公共 IP 地址。在 Nginx 配置文件中添加虛擬主機塊,指定偵聽端口、域名和網站根目錄。重啟 Nginx 以應用更改。訪問域名測試配置。其他注意事項:安裝 SSL 證書啟用 HTTPS、確保防火牆允許 80 端口流量、等待 DNS 解析生效。

      nginx服務器掛了怎麼辦 nginx服務器掛了怎麼辦 Apr 14, 2025 am 11:42 AM

      當 Nginx 服務器宕機時,可執行以下故障排除步驟:檢查 nginx 進程是否正在運行。查看錯誤日誌以獲取錯誤消息。檢查 nginx 配置語法正確性。確保 nginx 具有訪問文件所需的權限。檢查文件描述符打開限制。確認 nginx 正在偵聽正確的端口。添加防火牆規則以允許nginx流量。檢查反向代理設置,包括後端服務器可用性。如需進一步幫助,請聯繫技術支持。

      See all articles