优化tcp/ip
cat >> /etc/sysctl.conf << EOF
# WebSocket 必备优化
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.ip_local_port_range = 1024 65535
net.core.somaxconn=65535
net.ipv4.tcp_max_syn_backlog=16384
EOF
生效
sysctl -p
修改 /etc/security/limits.conf,
* soft nofile 1048576
* hard nofile 1048576
nginx配置
user root;
worker_processes auto;
# 每个 worker 的 fd 上限
worker_rlimit_nofile 65536;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
# 每个 worker 最大连接,调高到 4096(总连接 ≈ 8*4096=32k > 10000)
worker_connections 4096;
# 同时接受多个连接
multi_accept on;
# Linux 用 epoll(高效多路复用)
use epoll;
# 使用epoll 关掉惊群保护锁
accept_mutex off;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'Accept-encoding "$http_accept_encoding"'
'X-Request-With "$http_x_request_with"'
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$http_authorization"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
# ③ 加大缓冲,减少 slow system call
proxy_buffers 32 64k;
# ④ 首包更大,握手更快
proxy_buffer_size 128k;
proxy_busy_buffers_size 128k;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 443 ssl http2;
server_name sh.ixiatiao.com;
ssl_certificate "/etc/nginx/cert/sh.server.crt";
ssl_certificate_key "/etc/nginx/ert/sh.server.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 223.5.5.5 119.29.29.29 valid=86400s;
resolver_timeout 5s;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
gzip on;
gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/json application/xml application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;
# WebSocket 代理
location ^~ /user/session {
proxy_pass http://127.0.0.1:9981/user/session;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# ⑥ 清除 Connection 头,让后端完全接管
proxy_set_header Connection "";
# 防止长时间连接超时
proxy_read_timeout 86400;
}
}
}
本文由 转啊转 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2025/12/02 16:19