Nginx 서비스 최적화 (1) - 실전 조작
본 편의 중점
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 //
계속
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.