nginx 실 기 (2) 프로필 & 커 널 & 로그 설명
8935 단어 nginx
cat /etc/sysctl.conf
net.ipv4.ip_forward = 0
,0 ,1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_tw_buckets = 6000
TIME_WAIT , ,TIME_WAIT 。 180000, 5000。 Apache、Nginx , TIME_WAIT 。 TIME_WAIT .
net.ipv4.ip_local_port_range = 1024 65000
。 :32768 61000, 1024 65000。
net.ipv4.tcp_tw_recycle = 1
timewait 。
net.ipv4.tcp_tw_reuse = 1
。 TIME-WAIT sockets TCP 。
net.ipv4.tcp_syncookies = 1
SYN Cookies, SYN , cookies 。
net.ipv4.tcp_max_orphans = 262144
TCP 。 , 。 DoS , , ( )。
net.ipv4.tcp_keepalive_time = 1200
keepalive ,TCP keepalive 。 2 。
net.ipv4.tcp_keepalive_intvl = 30
, 。 75
net.ipv4.tcp_keepalive_probes = 3
, TCP keepalive 。 9。 tcp_keepalive_intvl , keepalive
net.ipv4.tcp_synack_retries = 1
, SYN SYN ACK。 。 SYN+ACK 。
syn-ack , 5, syn-flood 1 2
net.ipv4.tcp_syn_retries = 2
syn , 4
net.ipv4.tcp_max_syn_backlog = 262144
。 128M , 1024, 128。
net.ipv4.tcp_timestamps = 0
。 1Gbps 。 “ ” 。 。
net.core.rmem_max = 16777216
socket buffer
net.core.wmem_max = 16777216
socket buffer
net.ipv4.tcp_rmem = 4096 87380 4194304
TCP buffer
net.ipv4.tcp_wmem = 4096 16384 4194304
TCP buffer
net.core.wmem_default = 8388608
( )。
net.core.rmem_default = 8388608
( )。
net.core.rmem_max = 16777216
( ) ( ); TCP
net.core.wmem_max = 16777216
( ) ( ); TCP
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
size.
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.core.somaxconn = 262144
listen() , . 128. , .
예시
# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.somaxconn = 262144
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.swappiness = 0
fs.file-max = 409600
2. nginx 최적화 설정
프로필 설명:
user nginx;
nginx
worker_processes 8;
nginx , cpu , :# cat /proc/cpuinfo | grep processor | wc -l
worker_cpu_affinity
cpu, 8 8 cpu, , cpu。
worker_rlimit_nofile 409600
nginx , , ulimit -n
error_log /app/local/log/nginx/error.log warn;
use epoll;
epoll
worker_connections 51200;
, nginx worker_processes*worker_connections。
server_names_hash_bucket_size 64;
hash server_names_hash_max_size server_names_hash_bucket_size 。 hash bucket size hash , 。 , hash 。 hash bucket size , , 2。 , 。 , Nginx hash max size hash bucket size , .
proxy_headers_hash_max_size 51200;
, 。
proxy_headers_hash_bucket_size 6400;
, 64 。
server_tokens off;
include /app/local/nginx/conf/mime.types;
nginx
tcp_nopush on;
nginx ,
tcp_nodelay on;
nginx , � , , 。
keepalive_timeout
client_header_timeout 20;
client_body_timeout 20;
keep-alive 。 。 ngnix 。client_header_timeout client_body_timeout ( ) 。 。
reset_timedout_connection
nginx 。 。
send_timeout 10;
。 , 。 , ,nginx 。
sendfile on;
sendfile sendfile() 。sendfile() TCP socket ( )。Pre-sendfile 。 read() ,write() 。sendfile() OS 。 ,sendfile() read() write() ( sendfile)
reset_timedout_connection on;
nginx 。 。
send_timeout 30;
。 , 。 , ,nginx 。
gzip on;
GZIP ,
gzip_min_length 1k;
Content-Length , 1K
gzip_buffers 4 16k;
16K 4 , gzip 。
gzip_http_version 1.0;
1.1, gzip
gzip_comp_level 4;
1-9,1 ,9 CPU
gzip_types text/plain application/x-javascript text/css application/xml;
, text/html
gzip_vary on;
# ,
open_file_cache
, 。 , 20 。
open_file_cache_valid
open_file_cache 。
open_file_cache_min_uses
open_file_cache 。
open_file_cache_errors
, 。 , 。 , 。
2.2. 예시 설명
user nginx;
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
worker_rlimit_nofile 409600;
error_log /app/local/log/nginx/error.log warn;
pid /app/local/nginx/logs/nginx.pid;
events {
use epoll;
worker_connections 204800;
}
http {
server_names_hash_bucket_size 64;
proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;
include /app/local/nginx/conf/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for $request_length $msec $connection_requests $request_time';
access_log /app/local/log/nginx/access.log main;
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
client_header_timeout 20;
client_body_timeout 20;
reset_timeout_connection 30;
send_timeout 30;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 4;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
open_file_cache max=409600 inactive=30s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
include /app/local/nginx/conf/vhosts/*.conf;
}
3. 로그 형식 설명
$remote_addr, $http_x_forwarded_for IP
$remote_user
$request URL HTTP
$status
$body_bytes_sent , ; Apache mod_log_config “%B” 。
$bytes_sent 。
$connection 。
$connection_requests 。
$msec 。 , 。
$pipe HTTP (pipelined) ,pipe “p”, “.”。
$http_referer
$http_user_agent
$request_length ( , )。
$request_time , , ; , 。
$time_iso8601 ISO8601 。
$time_local 。
3.2. 예시:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for $request_length $msec $connection_requests $request_time';
$remote_addr: IP
$remote_user:
$time_local:
$request: URL HTTP
$status:
$body_bytes_sent: ,
$http_referer:
$http_user_agent:
$http_x_forwarded_for:
$request_length:
$msec:
$connection_requests:
$request_time:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.