nginx 일반적인 문제 처리
# vim /usr/local/nginx/conf/nginx.conf
-----
worker_process 1; // cpu
events {
worker_connections 200000; // worker
use epoll;
}
//epoll Linux poll, Linux IO select/poll , CPU
# /usr/local/nginx/sbin/nginx -s reload
링크 ux 커 널 파라미터 최적화 (최대 파일 수)
# ulimit -a
# ulimit -Hn 10000 // ( )
# ulimit -Sn 10000 // ( )
# vim /etc/security/limits.conf //
* soft nofile 100000
* hard nofile 100000
// / /
최적화 후 테스트 서버 의 병발 량
# ab -n 10000 -c 5000 http://192.168.1.15
2. nginx 데이터 패키지 캐 시 최적화 전에 스 크 립 트 로 긴 머리 요청 이 응답 을 받 을 수 있 는 지 테스트 합 니 다.
# vim buffer.sh
#!/bin/bash
URL=http://192.168.1.15/test/html
for i in {1..5000}
do
URL=$(URL)v$i=$i
done
curl $URL
# chmod +x buffer.sh
# ./buffer.sh
414 Request-URI Too Large // 。
nginx 프로필 을 수정 하여 패 킷 헤드 캐 시 크기 를 증가 합 니 다.
# vim /usr/local/nginx/conf/nginx.conf
--
http {
client_header_buffer_size 512K; //
large_client__header_buffers 4 512K; //
----
}
# /usr/lcoal/nginx/sbin/nginx -s reload
# ./buffer.sh
hello world!!
//nginx header 4K , 。
3. 브 라 우 저 로 컬 정적 데이터 화 호 는 about: cache 에서 nginx 설정 파일 을 수정 하고 정적 페이지 의 캐 시 시간 을 정의 합 니 다.
# vim /usr/local/nginx/conf/nginx.conf
---
server {
---
location ~*\.(jpg|jpeg|png|css|js|ico|xml)$ {
expires 30d;
}
}
# /usr/local/nginx/sbin/nginx -s stop
# /usr/lcoal/nginx/sbin/nginx
최적화 후 about: cache 페이지 를 다시 방문 하여 보기http://192.168.1.15캐 시 시간
사용자 정의 오류 페이지 설정 파일 수정, 사용자 정의 오류 페이지
# vim /usr/local/nginx/conf/nginx.conf
----
error_page 404 /40x.html;
---
# vim /usr/local/nginx/html/40x.html
404 error!!
# /usr/local/nginx/sbin/nginx -s reload
# firefox http://192.168.1.15/has.html
//
상태 코드
기능.
200
모든 것 이 정상이다.
301
영구적 으로 방향 을 바꾸다.
302
임시 방향 변경
401
사용자 이름 이나 비밀번호 오류
403
접근 금지 (클 라 이언 트 IP 거부)
404
파일 이 존재 하지 않 음
414
URI 머리 너무 길 게 요청
500
서버 내부 오류
502
Bad Gateway
4. 서버 상태 정보 보기 1) 컴 파일 설치 시 사용 - with - httpstub_module 페이지 상태 모듈 열기 / / 재 컴 파일 설치
# rm -rf /usr/local/nginx
# rm -rf nginx-1.12.2
#yum -y install openssl-devel zlib-devel pcre-devel gcc gcc-c++
# tar -xf nginx-1.12.2.tar.gz
# cd nginx-1.12.2/
# ./configure \
> --with-http_stub_status_module \ // status
> --with-http_ssl_module \ // ssl
> --with-stream // TCP/UDP
# make && make install
프로필 수정, 상태 페이지 정의
# vim /usr/local/nginx/conf/nginx.conf
server {
-----
location /status {
stub_status on;
}
}
# /usrlocal/nginx/sbin/nginx -s reload
# curl http://192.168.1.15/status
Active connections: 1
//
server accepts handled requests
2 2 2
//Accepts
Handled
Requests
Reading: 0 Writing: 1 Waiting: 0
//Reading
Writing
Waiting
5. 페이지 압축 처리
# vim /usr/local/nginx/conf/nginx.conf
---
http {
gzip on; //
gzip_min_length 1000; //
gzip_comp_level 4 //
gzip_type text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
// , mime.type
server {
---
}
---
}
6. 서버 내부 캐 시 만약 에 대량의 정적 파일 을 처리 해 야 한다 면 파일 을 메모리 에 캐 시 할 수 있 고 다음 에 방문 하 는 것 이 빠 를 것 입 니 다.
# vim /usr/local/nginx/conf/nginx.conf
http {
open_file_cache max=200 inactive=20s;
// 2000 , 20s
open_file_cache_valid 60s
// 60s,60s
open_fi;e_cache_min_uses 5;
// 5
open_file_cache_errors off;
----
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.