목차
nginx 버전 번호 숨기기
버전 번호 보기
버전 정보 숨기기
사용자 및 그룹 수정
캐시 시간
로그 세분화
연결 시간 제한을 구현하도록 Nginx 구성
更改Nginx运行进程数
配置Nginx实现网页优化压缩功能
压缩功能参数
配置防盗链
보충: 인터뷰 질문: 어떤 nginx 모듈이 사용되었고 어떤 최적화가 수행되었는지
운영 및 유지보수 엔진스 Nginx 안티 핫링크 및 서비스 최적화 구성 분석 예시

Nginx 안티 핫링크 및 서비스 최적화 구성 분석 예시

May 15, 2023 am 10:31 AM
nginx

      nginx 버전 번호 숨기기

      버전 번호 보기

      방법 1: 컬 명령

      CentOS에서 컬 -I http://192.168.80.130 명령을 사용하여 응답을 표시할 수 있습니다. 메시지 헤더 정보.

      curl -I http://192.168.80.130

      Nginx 안티 핫링크 및 서비스 최적화 구성 분석 예시

      방법 2: 웹페이지에서 보기

      1 #html 디렉토리로 전환하고 이미지를 그 디렉토리로 드래그하세요
      cd /usr/local/ nginx/ html

      2. #웹페이지에서 보기
      http://192.168.59.118/game.png

      Nginx 안티 핫링크 및 서비스 최적화 구성 분석 예시

      버전 정보 숨기기

      방법 1: 구성 파일 수정

      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 안티 핫링크 및 서비스 최적화 구성 분석 예시

      방법 2 : 소스 코드 파일 수정, 재컴파일 및 설치

      버전 번호를 사용자 지정할 수 있으므로 혼동될 수 있습니다.

      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 모드가 있습니다. 이 모드는 요청을 처리한 후 웹 서버에 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의 시간 초과를 지정합니다. 각 TCP 연결이 유지될 수 있는 최대 시간을 지정합니다. 그 후에는 서버가 연결을 닫습니다.

      • Nginx의 기본값은 65초입니다. 일부 브라우저에서는 최대 60초만 유지하므로 60초로 설정할 수 있습니다. 0으로 설정하면 Keepalive 연결이 비활성화됩니다.

      • 두 번째 매개변수(선택 사항)는 응답 헤더 Keep-Alive의 시간 값을 지정합니다: timeout=time. 이 헤더를 사용하면 일부 브라우저에서 연결을 능동적으로 닫을 수 있으므로 서버가 연결을 닫을 필요가 없습니다. 이 매개변수가 없으면 Nginx는 Keep-Alive 응답 헤더를 보내지 않습니다.

      client_ header_ timeout

      클라이언트가 완전한 요청 헤더를 서버에 보내는 데 걸리는 시간 초과 기간입니다. 클라이언트가 지정된 시간 내에 완전한 요청 헤더를 보내지 않으면 Nginx는 HTTP 408(요청 시간 초과)을 반환합니다.

      client_ body_ timeout

      클라이언트가 서버와 연결을 설정한 후 requestbody를 보내는 시간 제한을 지정합니다. 클라이언트가 지정된 시간 내에 아무 것도 보내지 않으면 Nginx는 HTTP 408(요청 시간 초과)을 반환합니다.

      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를 역방향 프록시 웹 클러스터로 사용하고 클러스터 서버 풀을 정의합니다.
      stream ### 4계층 역방향 프록시를 정의하는 데 사용됩니다.
      auth_ basic ### 사용자 인증
      fastcgi ### 요청을 php
      로 전달-모듈 이름 포함 ### 모듈 활성화
      --모듈 이름 없음 ### 모듈 비활성화

      버전 번호 숨기기, 압축, 캐시, 안티- 핫링크, 지속적인 유지 관리, 작업자 프로세스 및 프로세스 연결 수 최적화, 로그 분할 및 역방향 프록시

      위 내용은 Nginx 안티 핫링크 및 서비스 최적화 구성 분석 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

      본 웹사이트의 성명
      본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

      핫 AI 도구

      Undresser.AI Undress

      Undresser.AI Undress

      사실적인 누드 사진을 만들기 위한 AI 기반 앱

      AI Clothes Remover

      AI Clothes Remover

      사진에서 옷을 제거하는 온라인 AI 도구입니다.

      Undress AI Tool

      Undress AI Tool

      무료로 이미지를 벗다

      Clothoff.io

      Clothoff.io

      AI 옷 제거제

      AI Hentai Generator

      AI Hentai Generator

      AI Hentai를 무료로 생성하십시오.

      인기 기사

      R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
      3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
      R.E.P.O. 최고의 그래픽 설정
      3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
      R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
      3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
      WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
      3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

      뜨거운 도구

      메모장++7.3.1

      메모장++7.3.1

      사용하기 쉬운 무료 코드 편집기

      SublimeText3 중국어 버전

      SublimeText3 중국어 버전

      중국어 버전, 사용하기 매우 쉽습니다.

      스튜디오 13.0.1 보내기

      스튜디오 13.0.1 보내기

      강력한 PHP 통합 개발 환경

      드림위버 CS6

      드림위버 CS6

      시각적 웹 개발 도구

      SublimeText3 Mac 버전

      SublimeText3 Mac 버전

      신 수준의 코드 편집 소프트웨어(SublimeText3)

      Tomcat 서버에 대한 외부 네트워크 액세스를 허용하는 방법 Tomcat 서버에 대한 외부 네트워크 액세스를 허용하는 방법 Apr 21, 2024 am 07:22 AM

      Tomcat 서버가 외부 네트워크에 액세스하도록 허용하려면 다음을 수행해야 합니다. 외부 연결을 허용하도록 Tomcat 구성 파일을 수정합니다. Tomcat 서버 포트에 대한 액세스를 허용하는 방화벽 규칙을 추가합니다. Tomcat 서버 공용 IP에 대한 도메인 이름을 가리키는 DNS 레코드를 만듭니다. 선택 사항: 역방향 프록시를 사용하여 보안 및 성능을 향상합니다. 선택 사항: 보안 강화를 위해 HTTPS를 설정합니다.

      thinkphp를 실행하는 방법 thinkphp를 실행하는 방법 Apr 09, 2024 pm 05:39 PM

      ThinkPHP Framework를 로컬에서 실행하는 단계: ThinkPHP Framework를 로컬 디렉터리에 다운로드하고 압축을 풉니다. ThinkPHP 루트 디렉터리를 가리키는 가상 호스트(선택 사항)를 만듭니다. 데이터베이스 연결 매개변수를 구성합니다. 웹 서버를 시작합니다. ThinkPHP 애플리케이션을 초기화합니다. ThinkPHP 애플리케이션 URL에 접속하여 실행하세요.

      nginx에 오신 것을 환영합니다! 어떻게 해결하나요? nginx에 오신 것을 환영합니다! 어떻게 해결하나요? Apr 17, 2024 am 05:12 AM

      "Welcome to nginx!" 오류를 해결하려면 가상 호스트 구성을 확인하고, 가상 호스트를 활성화하고, Nginx를 다시 로드하고, 가상 호스트 구성 파일을 찾을 수 없으면 기본 페이지를 만들고, Nginx를 다시 로드해야 합니다. 그러면 오류 메시지가 나타납니다. 사라지고 웹사이트는 정상적으로 표시됩니다.

      도커 컨테이너 간 통신 방법 도커 컨테이너 간 통신 방법 Apr 07, 2024 pm 06:24 PM

      Docker 환경에는 공유 네트워크, Docker Compose, 네트워크 프록시, 공유 볼륨 및 메시지 큐의 5가지 컨테이너 통신 방법이 있습니다. 격리 및 보안 요구 사항에 따라 Docker Compose를 활용하여 연결을 단순화하거나 네트워크 프록시를 사용하여 격리를 높이는 등 가장 적절한 통신 방법을 선택하세요.

      HTML 파일에서 URL을 생성하는 방법 HTML 파일에서 URL을 생성하는 방법 Apr 21, 2024 pm 12:57 PM

      HTML 파일을 URL로 변환하려면 다음 단계를 포함하는 웹 서버가 필요합니다. 웹 서버를 얻습니다. 웹 서버를 설정합니다. HTML 파일을 업로드하세요. 도메인 이름을 만듭니다. 요청을 라우팅합니다.

      nodejs 프로젝트를 서버에 배포하는 방법 nodejs 프로젝트를 서버에 배포하는 방법 Apr 21, 2024 am 04:40 AM

      Node.js 프로젝트의 서버 배포 단계: 배포 환경 준비: 서버 액세스 권한 획득, Node.js 설치, Git 저장소 설정. 애플리케이션 빌드: npm run build를 사용하여 배포 가능한 코드와 종속성을 생성합니다. Git 또는 파일 전송 프로토콜을 통해 서버에 코드를 업로드합니다. 종속성 설치: SSH를 서버에 연결하고 npm install을 사용하여 애플리케이션 종속성을 설치합니다. 애플리케이션 시작: node index.js와 같은 명령을 사용하여 애플리케이션을 시작하거나 pm2와 같은 프로세스 관리자를 사용합니다. 역방향 프록시 구성(선택 사항): Nginx 또는 Apache와 같은 역방향 프록시를 사용하여 트래픽을 애플리케이션으로 라우팅합니다.

      Dockerfile에서 가장 일반적인 지침은 무엇입니까? Dockerfile에서 가장 일반적인 지침은 무엇입니까? Apr 07, 2024 pm 07:21 PM

      Dockerfile에서 가장 일반적으로 사용되는 지침은 다음과 같습니다. FROM: 새 이미지 생성 또는 새 이미지 파생 RUN: 명령 실행(소프트웨어 설치, 시스템 구성) COPY: 로컬 파일을 이미지에 복사 ADD: COPY와 유사하며 자동으로 압축을 풀 수 있습니다. tar 아카이브 또는 URL 파일 얻기 CMD: 컨테이너가 시작될 때 명령 지정 EXPOSE: 컨테이너 수신 포트 선언(공개는 아님) ENV: 환경 변수 설정 VOLUME: 호스트 디렉터리 또는 익명 볼륨 마운트 WORKDIR: 작업 디렉터리 설정 컨테이너 ENTRYPOINT: 컨테이너가 시작될 때 실행할 항목을 지정합니다. 실행 파일(CMD와 유사하지만 덮어쓸 수 없음)

      nodejs를 외부에서 접근할 수 있나요? nodejs를 외부에서 접근할 수 있나요? Apr 21, 2024 am 04:43 AM

      예, Node.js는 외부에서 액세스할 수 있습니다. 다음 방법을 사용할 수 있습니다. Cloud Functions를 사용하여 함수를 배포하고 공개적으로 액세스할 수 있도록 합니다. Express 프레임워크를 사용하여 경로를 만들고 끝점을 정의합니다. Nginx를 사용하여 Node.js 애플리케이션에 대한 프록시 요청을 역방향으로 수행합니다. Docker 컨테이너를 사용하여 Node.js 애플리케이션을 실행하고 포트 매핑을 통해 노출합니다.

      See all articles