首页 帮助中心 香港服务器租用 香港服务器如何优化Nginx并发性能?
香港服务器如何优化Nginx并发性能?
时间 : 2025-09-19 15:21:26
编辑 : 华纳云
阅读量 : 9

在香港部署网站,常常面对来自中国内地、东南亚及全球的并发流量。要在香港服务器上让 Nginx 在高并发场景下稳定且高效运行,需要从操作系统、Nginx 配置、网络与架构三条线同时着手。接下来,我们将从多个方面来优化,可供参考!

一、操作系统层面(内核与资源限制)

高并发关键在大量文件描述符(FD)与内核网络栈的并发能力。

1. 提高文件描述符限制,编辑 /etc/security/limits.conf

* soft nofile 200000
* hard nofile 200000

如果使用 systemd,还需在服务 override 中设置 LimitNOFILE=200000

2. sysctl 网络参数(示例)

将下面配置写入 /etc/sysctl.d/99-nginx.conf 并执行 sysctl -p

net.core.somaxconn = 65535
net.core.netdev_max_backlog = 32768
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 10240 65535

说明:somaxconntcp_max_syn_backlog 增加半连接队列,tcp_tw_reuse 有助于端口复用以减少 TIME_WAIT 堆积。修改须结合实际测试。

3. 网络拥塞控制(可选)

若内核支持,可启用 BBR:sysctl -w net.core.default_qdisc=fqsysctl -w net.ipv4.tcp_congestion_control=bbr。注意:需要核对内核版本并在测试环境验证稳定性。

二、Nginx 进程与事件模型调优

Nginx 的 worker_processesworker_connections 决定理论并发上限:

1. 基础配置(nginx.conf)示例:

worker_processes auto;
worker_rlimit_nofile 200000;

events {
    use epoll;              # Linux 推荐 epoll
    worker_connections 32768;
    multi_accept on;
}

计算并发上限:并发连接 ≈ worker_processes × worker_connections(还要考虑每个连接的文件描述符占用,proxy/keepalive 等会额外消耗)。

2. accept/负载均衡选项

listen ... reuseport; 可在多 worker 下减少竞争(需内核与 Nginx 支持)。对短连接高并发场景尤其有利:

server {
    listen 80 reuseport backlog=65535;
    ...
}

3. keepalive 与超时设置

长时间占用连接会降低并发吞吐,合理设置:

keepalive_timeout  15;
keepalive_requests 100;
send_timeout 10;
client_header_timeout 10;
client_body_timeout 10;

对 API 型短连接可把 keepalive_timeout 设短,对长连接或后端复用则适度放宽。

三、业务层与 Nginx 功能优化

1. 静态资源交给 Nginx:使用 sendfile on; tcp_nopush on; tcp_nodelay on;

sendfile        on;
tcp_nopush      on;
tcp_nodelay     on;

sendfile 减少内核拷贝,tcp_nopushtcp_nodelay 配合提升大文件传输效率。

2. gzip/压缩:开启但避免过度消耗 CPU

gzip on;
gzip_min_length 1024;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

对 CPU 受限的实例,考虑使用 CDN 做静态压缩。

3. 缓存与缓存层(proxy_cache / fastcgi_cache)

对动态页面或 API,启用 proxy_cache 可极大降低后端压力。示例:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mycache:100m max_size=10g inactive=60m use_temp_path=off;
server {
    location /api/ {
        proxy_cache mycache;
        proxy_cache_valid 200 302 60s;
        proxy_cache_valid 404 1m;
        proxy_cache_key "$scheme://$host$request_uri";
        proxy_pass http://backend;
    }
}

注意缓存失效与一致性策略(Cache-Control、Surrogate-Key)。

4. upstream 设置与连接复用

对后端长连接,启用 keepalive

upstream backend {
    server 10.0.0.1:8080;
    server 10.0.0.2:8080;
    keepalive 32;
}

并在 proxy_http_version 1.1; proxy_set_header Connection ""; 以启用复用。

5. 限流与保护机制(防止雪崩)

使用 limit_req_zone/limit_conn_zone 控制突发流量:

limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
limit_req zone=one burst=20 nodelay;

配合 limit_conn 做并发连接限制,防止单 IP 独占资源。

四、TLS/SSL 优化(HTTPS 必备)

1. 使用现代的 TLS 配置,启用会话缓存与票据(session cache / session tickets),减少握手开销:

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets on;
ssl_buffer_size 4k;

2. 启用 OCSP Stapling 可减少客户端到 CA 的查询延迟(需证书支持)。

3. 若支持 HTTP/2,启用以改善多路复用(但注意 HTTP/2 与某些中间件兼容性问题)。对于超高并发短连接场景,也可评估 QUIC/HTTP3(取决于 Nginx 版本与模块)。

五、横向扩展与网络层方案

单台服务器有上限,建议结合以下架构手段:

CDN:将静态资源与热点缓存到边缘,香港可优先选择在港有 PoP 的 CDN 提升本地与周边访问速度。

负载均衡(L4/L7):使用 LVS、HAProxy 或云厂商的 LB 做流量分发,前端做健康检查与会话保持策略。

多机房/多可用区:对跨境业务,考虑在香港和中国内地或东南亚部署边缘节点,降低延迟并做容灾。

服务拆分与微缓存:将高并发的静态与不经常变化的接口单独拆出并加缓存层。

Nginx 高并发优化是系统工程:别把所有希望寄托在单一配置项。先从可量化的指标入手(并发、RPS、P95 延迟),在测试环境复现实验,再逐步推广到生产。对香港服务器来说,网络延迟与多源流量特性尤为关键——合理利用 CDN、负载均衡与缓存,结合内核与 Nginx 的调优,能在节省成本的同时显著提升并发承载能力。

相关内容
客服咨询
7*24小时技术支持
技术支持
渠道支持