Nginx 서비스 최적화 (1) - 실전 조작

Nginx 서비스 최적화
본 편의 중점
nginx 버 전 숨 기기
nginx 버 전 번호 위장
nginx 시간 초과 관리
nginx 프로 세 스 관리
nginx 로그 분할
실험 전제:
수 동 컴 파일 설치 완료 Nginx 서비스
nginx 버 전 숨 기기
nginx 서 비 스 는 기본적으로 버 전 번 호 를 표시 합 니 다.
[root@localhost nginx]# curl -I http://192.168.142.128
HTTP/1.1 200 OK
Server: nginx/1.12.2                  //         
Date: Wed, 13 Nov 2019 08:11:41 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 13 Nov 2019 08:04:45 GMT
Connection: keep-alive
ETag: "5dcbb91d-264"
Accept-Ranges: bytes

이렇게 하면 사람들 에 게 당신 의 서버 nginx 버 전 1.12.2 을 보 여 줍 니 다. 이렇게 노출 된 버 전 번 호 는 공격 자가 이용 할 수 있 는 정보 가 되 기 쉽 습 니 다.그래서 안전 한 측면 에서 볼 때 숨겨 진 버 전 번 호 는 상대 적 으로 안전 합 니 다!
버 전 번 호 를 숨 기 는 단계:
[root@localhost nginx]# pwd
/usr/local/nginx
[root@localhost nginx]# vim conf/nginx.conf              //     
 server      ,  
    server_tokens off;
wq    
[root@localhost nginx]# service nginx stop               //    
[root@localhost nginx]# service nginx start

현재 서 비 스 를 다시 시작 한 후 버 전 번 호 를 다시 봅 니 다.
[root@localhost nginx]# curl -I http://192.168.142.128
HTTP/1.1 200 OK
Server: nginx                          //      
Date: Wed, 13 Nov 2019 08:20:17 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 13 Nov 2019 08:04:45 GMT
Connection: keep-alive
ETag: "5dcbb91d-264"
Accept-Ranges: bytes

nginx 버 전 번호 위장
버 전 번 호 를 숨 기 는 것 외 에 도 잘못된 버 전 번 호 를 되 돌 릴 수 있 습 니 다. 수정 nginx.h wen 부품 (단점: nginx 를 다시 컴 파일 하여 설치 해 야 합 니 다)
[root@localhost nginx]# cd /opt/nginx-1.12.2/src/core/
          nginx.h
[root@localhost core]# vim nginx.h 
#define NGINX_VERSION      "9.9.9"
           

nginx 를 재 컴 파일 하여 설치 합 니 다.
[root@localhost core]# cd /opt/nginx-1.12.2/
[root@localhost nginx-1.12.2]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx
[root@localhost nginx-1.12.2]# make && make install             //        
[root@localhost nginx-1.12.2]# cd /usr/local/nginx/conf/
[root@localhost conf]# service nginx stop                       //    
[root@localhost conf]# service nginx start 

위장 성공 여 부 를 확인 합 니 다 (주 프로필 확보 중 server_tokens on;
[root@localhost conf]# curl -I http://192.168.142.128
HTTP/1.1 200 OK
Server: nginx/9.9.9                      //    
Date: Wed, 13 Nov 2019 08:38:17 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 13 Nov 2019 08:04:45 GMT
Connection: keep-alive
ETag: "5dcbb91d-264"
Accept-Ranges: bytes

3. nginx 시간 초과 관리
자원 의 가장 효과 적 인 이용 을 확보 하기 위해 장시간 조작 하지 않 는 사용자 에 게 점용 되 지 않 기 때문에 시간 초과 관 리 를 해 야 한다.
주 프로필 수정
[root@localhost conf]# pwd
/usr/local/nginx/conf
[root@localhost conf]# vim nginx.conf
  'keepalive_timeout',        
    keepalive_timeout  65 180;       #             ,       。
    client_header_timeout 80;         #               
    client_body_timeout 70;          #           

[root@localhost conf]# service nginx stop 
[root@localhost conf]# service nginx start

4. nginx 프로 세 스 관리
일반적으로 기본 적 인 상황 에서 nginx 의 실행 프로 세 스 worker_processes 는 1 에 불과 합 니 다.
[root@localhost conf]# ps aux | grep nginx
root      43055  0.0  0.0  20540   608 ?        Ss   17:13   0:00 nginx: master process /usr/local/nginx/sbin/nginx     //       
nginx     43056  0.0  0.0  23064  1380 ?        S    17:13   0:00 nginx: worker process    //                  
root      43189  0.0  0.0 112728   968 pts/1    S+   17:25   0:00 grep --color=auto nginx

다 중 핵 처리 장치 가 있 는 서버 에 더 높 은 처리 효율 을 주기 위해 서 는 프로 세 스 를 수정 해 야 합 니 다 (이번 실험 환경 은 2 핵 서버).
[root@localhost conf]# pwd
/usr/local/nginx/conf
[root@localhost conf]# vim nginx.conf
  'worker_processes',   
    worker_processes  2;          #    cpu       
    worker_cpu_affinity 01 10;      #         cpu  
[root@localhost conf]# service nginx stop       #    
[root@localhost conf]# service nginx start

이 때, 우 리 는 nginx 의 프로 세 스 를 다시 봅 니 다. (두 개의 작업 프로 세 스 가 있 을 것 입 니 다.)
[root@localhost conf]# ps aux | grep nginx
root      43353  0.0  0.0  20540   604 ?        Ss   17:36   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx     43354  0.0  0.0  23064  1372 ?        S    17:36   0:00 nginx: worker process
nginx     43355  0.0  0.0  23064  1364 ?        S    17:36   0:00 nginx: worker process
root      43367  0.0  0.0 112728   972 pts/1    S+   17:37   0:00 grep --color=auto nginx

nginx 로그 분할
매일 대량의 일지 가 쌓 이 고 쌓 이 고 힘 들 어 죽 는 사람 을 조회 하면 어떻게 합 니까?안심 하 세 요!일지 분할 로 도와 줄 게.
필요 한 것 은 스 크 립 트 하나 와 계획 작업 하나 뿐 입 니 다.
각본
[root@localhost nginx]# vim fenge.sh
#!/bin/bash
#          ,  20         
pid="/usr/local/nginx/logs/nginx.pid"
log="/usr/local/nginx/logs/access.log"
time=`date -d "-1 day" "+%Y%m%d"`
[ -d "/var/log/nginx" ] || mkdir -p /var/log/nginx
mv $log /var/log/nginx/access.log-$time        #      
pidhao=`cat $pid`
kill -USR1 $pidhao                          #    
find /var/log/nginx -mtime +20 | xargs rm -rf      #  20       

계획 임무
[root@localhost nginx]# crontab -e
  
* * */1 * * /usr/local/nginx/fenge.sh     //      

계속

좋은 웹페이지 즐겨찾기