Nginx 优化指南

一、基础优化

1、调整 worker_processes

Nginx 的 worker_processes 参数决定了工作进程的数量,不宜设置过高,否则会占用大量的 CPU 和内存资源,每个进程一般占用 1MB 左右的内存。在大多数情况下,建议将 worker_processes 设置为 CPU 核心数的值,以提高 CPU 利用率和响应速度。

worker_processes 4;

2、调整 worker_connections

worker_connections 指定了每个 worker 进程所支持的最大连接数,过低的话会导致请求被拒绝的问题,过高则会导致服务质量下降,建议根据实际情况适当调整。

worker_connections 1024;

3、开启 sendfile

sendfile 可以提高文件传输效率,通过直接在内核空间和磁盘之间传输数据来实现服务端零拷贝。

sendfile on;

二、缓存优化

1、开启缓存

可以通过设置 proxy_cache_path 和 proxy_cache 启用 Nginx 的缓存功能,将一部分静态资源缓存到本地,避免多次请求带来的延迟。

proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m inactive=60m;
location / {
    proxy_cache my_cache;
    proxy_cache_valid 200 1h;
    proxy_cache_valid 403 404 1m;
    proxy_pass http://backend;
}

2、开启 gzip 压缩

启用 gzip 压缩可以减少传输数据的大小,加快响应速度,并节省带宽资源。

gzip on;
gzip_comp_level 2;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

三、安全优化

1、限制文件上传大小

在上传文件时,为了防止用户恶意上传过大的文件占用服务器空间,可以限制文件上传大小。

client_max_body_size 10m;

2、开启 SSL

如果网站需要加密传输,可以开启 SSL,通过 HTTPS 协议进行通信,增加数据传输的安全性。

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256;
    ...
}

3、添加安全头部

通过添加安全头部,可以进一步加强网站的安全性,例如防止 XSS 攻击。

add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";

四、性能优化

1、使用反向代理

Nginx 可以通过反向代理的方式将请求转发到后端服务,提高服务响应速度和稳定性。

location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

2、开启 TCP_NODELAY

TCP_NODELAY 参数可以减少 TCP 连接的延迟,提高数据传输的速度。

tcp_nopush on;
tcp_nodelay on;

3、使用 FastCGI 缓存

FastCGI 可以将请求转发到静态资源缓存服务器,将一部分请求缓存到磁盘上,减少后续请求的响应时间。

fastcgi_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m inactive=60m;
location / {
    fastcgi_cache my_cache;
    fastcgi_cache_valid 200 1h;
    fastcgi_cache_valid 403 404 1m;
    include fastcgi_params;
    fastcgi_pass backend;
}

原创文章,作者:JJIGJ,如若转载,请注明出处:https://www.506064.com/n/368061.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JJIGJJJIGJ
上一篇 2025-04-02 01:28
下一篇 2025-04-02 01:28

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • 运维Python和GO应用实践指南

    本文将从多个角度详细阐述运维Python和GO的实际应用,包括监控、管理、自动化、部署、持续集成等方面。 一、监控 运维中的监控是保证系统稳定性的重要手段。Python和GO都有强…

    编程 2025-04-29
  • Python wordcloud入门指南

    如何在Python中使用wordcloud库生成文字云? 一、安装和导入wordcloud库 在使用wordcloud前,需要保证库已经安装并导入: !pip install wo…

    编程 2025-04-29
  • Python应用程序的全面指南

    Python是一种功能强大而简单易学的编程语言,适用于多种应用场景。本篇文章将从多个方面介绍Python如何应用于开发应用程序。 一、Web应用程序 目前,基于Python的Web…

    编程 2025-04-29
  • Python小波分解入门指南

    本文将介绍Python小波分解的概念、基本原理和实现方法,帮助初学者掌握相关技能。 一、小波变换概述 小波分解是一种广泛应用于数字信号处理和图像处理的方法,可以将信号分解成多个具有…

    编程 2025-04-29
  • Python字符转列表指南

    Python是一个极为流行的脚本语言,在数据处理、数据分析、人工智能等领域广泛应用。在很多场景下需要将字符串转换为列表,以便于操作和处理,本篇文章将从多个方面对Python字符转列…

    编程 2025-04-29
  • Python初学者指南:第一个Python程序安装步骤

    在本篇指南中,我们将通过以下方式来详细讲解第一个Python程序安装步骤: Python的安装和环境配置 在命令行中编写和运行第一个Python程序 使用IDE编写和运行第一个Py…

    编程 2025-04-29
  • FusionMaps应用指南

    FusionMaps是一款基于JavaScript和Flash的交互式地图可视化工具。它提供了一种简单易用的方式,将复杂的数据可视化为地图。本文将从基础的配置开始讲解,到如何定制和…

    编程 2025-04-29
  • Python起笔落笔全能开发指南

    Python起笔落笔是指在编写Python代码时的编写习惯。一个好的起笔落笔习惯可以提高代码的可读性、可维护性和可扩展性,本文将从多个方面进行详细阐述。 一、变量命名 变量命名是起…

    编程 2025-04-29
  • Python中文版下载官网的完整指南

    Python是一种广泛使用的编程语言,具有简洁、易读易写等特点。Python中文版下载官网是Python学习和使用过程中的重要资源,本文将从多个方面对Python中文版下载官网进行…

    编程 2025-04-29

发表回复

登录后才能评论