怎样在 Ubuntu 22.04 上摆设 Nginx 并优化以应对高流量网站教程

[复制链接]
发表于 2025-11-16 19:43:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
简介

本教程将教你怎样优化 Nginx,使其可以大概高效地处理惩罚高流量网站。 Nginx 是一个强大且高性能的 Web 服务器,以其高效处理惩罚大量并发毗连的本领而著名,这使得它成为高流量网站的盛行选择。 准确优化 Nginx 可以显着进步服务器的性能,镌汰加载时间,并确保你的网站可以大概处理惩罚大量的哀求而不会瓦解。
本教程将手把手地引导你完成优化 Nginx 以应对高流量的步调,重点关注设置调解、缓存、毗连处理惩罚和安全加强。
预备工作


若尚未拥有服务器,可前去 雨云官网 https://rainyun.ivwv.site 举行注册,新用户有专属优惠。
安装和设置步调

第一步:更新 Nginx 到最新版本

保持 Nginx 更新可以确保你拥有最新的性能改进、功能和安全补丁。
更新 Nginx 的下令:
  1. # For Ubuntu/Debian
  2. sudo apt update
  3. sudo apt install nginx
  4. # For RHEL/AlmaLinux/Rocky Linux
  5. sudo dnf update
  6. sudo dnf install nginx
复制代码
第二步:调解工作历程和毗连数

Nginx 利用工作历程来处理惩罚传入的毗连。优化这些设置对于处理惩罚高流量至关告急。
编辑 Nginx 设置文件:
  1. sudo nano /etc/nginx/nginx.conf
复制代码
调解工作历程和工作毗连数:
  1. worker_processes auto;
  2. worker_connections 1024;
复制代码


  • worker_processes auto;: 这个设置会主动将工作历程的数目设置为与可用的 CPU 核心数匹配,从而优化服务器的性能。
  • worker_connections 1024;: 指定每个工作历程可以同时处理惩罚的最大毗连数。这个值可以根据服务器的性能和流量举行增长。
启用多线程(可选):
  1. events {
  2.     worker_connections 1024;
  3.     multi_accept on;
  4. }
复制代码


  • multi_accept on;: 这个设置允许一个工作历程一次担当多个新毗连,从而在高峰流量期间进步性能。
第三步:启用 Gzip 压缩

Gzip 压缩可以镌汰传输数据的巨细,从而紧缩加载时间并镌汰带宽利用。
在 Nginx 设置中启用 Gzip:
  1. sudo nano /etc/nginx/nginx.conf
复制代码
在 http 块下添加或修改以下行:
  1. http {
  2.     gzip on;
  3.     gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  4.     gzip_min_length 256;
  5.     gzip_comp_level 5;
  6. }
复制代码


  • gzip on;: 启用 Gzip 压缩。
  • gzip_types: 指定要压缩的 MIME 范例。
  • gzip_min_length 256;: 仅压缩大于 256 字节的相应。
  • gzip_comp_level 5;: 设置压缩级别(1-9);更高的级别提供更好的压缩,但会利用更多的 CPU。
第四步:设置静态内容缓存

缓存静态内容(如图像、CSS 和 JavaScript)可以镌汰服务器负载并加速相应速率。
将以下行添加到 server 块中:
  1. location ~* \\.(jpg|jpeg|png|gif|ico|css|js)$ {
  2.     expires 30d;
  3.     add_header Cache-Control "public, no-transform";
  4. }
复制代码


  • expires 30d;: 将欣赏器缓存逾期时间设置为 30 天。
  • add_header Cache-Control "public, no-transform";: 添加缓存控制头。
第五步:优化缓冲区和超时

优化缓冲区和超时可以资助 Nginx 更有效地处理惩罚更多毗连,而不会使内存过载。
编辑重要的 Nginx 设置文件:
  1. sudo nano /etc/nginx/nginx.conf
复制代码
在 http 块下添加以下设置:
  1. http {
  2.     client_body_buffer_size 16k;
  3.     client_max_body_size 8m;
  4.     client_header_buffer_size 1k;
  5.     large_client_header_buffers 4 16k;
  6.     sendfile on;
  7.     tcp_nopush on;
  8.     tcp_nodelay on;
  9.     keepalive_timeout 65;
  10.     types_hash_max_size 2048;
  11. }
复制代码


  • client_body_buffer_size 16k;: 设置客户端哀求的缓冲区巨细。
  • client_max_body_size 8m;: 限定客户端哀求的最大巨细。
  • sendfile on;: 启用零拷贝文件传输,从而镌汰 CPU 负载。
  • tcp_nopush on; 和 tcp_nodelay on;: 优化 TCP 毗连处理惩罚以得到更好的性能。
  • keepalive_timeout 65;: 设置保持运动超时时间,允许毗连保持打开 65 秒。
第六步:实现负载平衡

Nginx 可以将传入的流量分配到多个服务器上,从而进步性能和冗余。
在 Nginx 中设置负载平衡:
  1. upstream backend {
  2.     server backend1.example.com weight=3;
  3.     server backend2.example.com;
  4. }
  5. server {
  6.     listen 80;
  7.     location / {
  8.         proxy_pass http://backend;
  9.         proxy_set_header Host $host;
  10.         proxy_set_header X-Real-IP $remote_addr;
  11.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12.         proxy_set_header X-Forwarded-Proto $scheme;
  13.     }
  14. }
复制代码


  • upstream backend { ... }: 界说一个包罗多个服务器的后端组。
  • weight=3;: 以指定的权重分配流量,将三倍的流量发送到第一个服务器。
第七步:启用毗连缓存和调优

Nginx 毗连缓存和调优可以显着进步它处理惩罚多个毗连的方式。
在 nginx.conf 的 http 块下添加以下指令:
  1. http {
  2.     proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
  3.     server {
  4.         location / {
  5.             proxy_cache my_cache;
  6.             proxy_cache_valid 200 1h;
  7.             proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
  8.             proxy_pass http://backend;
  9.         }
  10.     }
  11. }
复制代码


  • proxy_cache_path: 界说缓存署理相应的路径。
  • proxy_cache_use_stale: 如果后端服务器不可用,则利用逾期的缓存相应。
第八步:设置安全设置

掩护你的 Nginx 服务器还可以防止 DDoS 攻击并进步性能。
限定哀求巨细和速率限定:
  1. http {
  2.     limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
  3.     server {
  4.         location / {
  5.             limit_req zone=one burst=5;
  6.         }
  7.     }
  8. }
复制代码


  • limit_req_zone: 界说用于速率限定的共享内存地区。
  • rate=10r/s: 将哀求限定为每秒 10 个哀求。
第九步:测试并重启 Nginx

在举行更改后,测试你的 Nginx 设置是否有错误并重启服务器。
测试 Nginx 设置:
  1. sudo nginx -t
复制代码
重启 Nginx:
  1. sudo systemctl restart nginx
复制代码
末了

优化 Nginx 以应对高流量网站涉及到调解各种设置,以进步性能、镌汰耽误和掩护服务器。 通过依照这些步调,你可以确保你的 Nginx 服务器可以大概有效地处理惩罚大量流量。 定期监控监控服务器的性能,并根据必要调解设置,以保持其最佳运行状态。
我的博客:https://blog.ivwv.site
雨云官网:https://rainyun.ivwv.site
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表