马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
简介
本教程将教你怎样优化 Nginx,使其可以大概高效地处理惩罚高流量网站。 Nginx 是一个强大且高性能的 Web 服务器,以其高效处理惩罚大量并发毗连的本领而著名,这使得它成为高流量网站的盛行选择。 准确优化 Nginx 可以显着进步服务器的性能,镌汰加载时间,并确保你的网站可以大概处理惩罚大量的哀求而不会瓦解。
本教程将手把手地引导你完成优化 Nginx 以应对高流量的步调,重点关注设置调解、缓存、毗连处理惩罚和安全加强。
预备工作
若尚未拥有服务器,可前去 雨云官网 https://rainyun.ivwv.site 举行注册,新用户有专属优惠。
安装和设置步调
第一步:更新 Nginx 到最新版本
保持 Nginx 更新可以确保你拥有最新的性能改进、功能和安全补丁。
更新 Nginx 的下令:
- # For Ubuntu/Debian
- sudo apt update
- sudo apt install nginx
- # For RHEL/AlmaLinux/Rocky Linux
- sudo dnf update
- sudo dnf install nginx
复制代码 第二步:调解工作历程和毗连数
Nginx 利用工作历程来处理惩罚传入的毗连。优化这些设置对于处理惩罚高流量至关告急。
编辑 Nginx 设置文件:
- sudo nano /etc/nginx/nginx.conf
复制代码 调解工作历程和工作毗连数:
- worker_processes auto;
- worker_connections 1024;
复制代码
- worker_processes auto;: 这个设置会主动将工作历程的数目设置为与可用的 CPU 核心数匹配,从而优化服务器的性能。
- worker_connections 1024;: 指定每个工作历程可以同时处理惩罚的最大毗连数。这个值可以根据服务器的性能和流量举行增长。
启用多线程(可选):
- events {
- worker_connections 1024;
- multi_accept on;
- }
复制代码
- multi_accept on;: 这个设置允许一个工作历程一次担当多个新毗连,从而在高峰流量期间进步性能。
第三步:启用 Gzip 压缩
Gzip 压缩可以镌汰传输数据的巨细,从而紧缩加载时间并镌汰带宽利用。
在 Nginx 设置中启用 Gzip:
- sudo nano /etc/nginx/nginx.conf
复制代码 在 http 块下添加或修改以下行:
- http {
- gzip on;
- gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
- gzip_min_length 256;
- gzip_comp_level 5;
- }
复制代码
- gzip on;: 启用 Gzip 压缩。
- gzip_types: 指定要压缩的 MIME 范例。
- gzip_min_length 256;: 仅压缩大于 256 字节的相应。
- gzip_comp_level 5;: 设置压缩级别(1-9);更高的级别提供更好的压缩,但会利用更多的 CPU。
第四步:设置静态内容缓存
缓存静态内容(如图像、CSS 和 JavaScript)可以镌汰服务器负载并加速相应速率。
将以下行添加到 server 块中:
- location ~* \\.(jpg|jpeg|png|gif|ico|css|js)$ {
- expires 30d;
- add_header Cache-Control "public, no-transform";
- }
复制代码
- expires 30d;: 将欣赏器缓存逾期时间设置为 30 天。
- add_header Cache-Control "public, no-transform";: 添加缓存控制头。
第五步:优化缓冲区和超时
优化缓冲区和超时可以资助 Nginx 更有效地处理惩罚更多毗连,而不会使内存过载。
编辑重要的 Nginx 设置文件:
- sudo nano /etc/nginx/nginx.conf
复制代码 在 http 块下添加以下设置:
- http {
- client_body_buffer_size 16k;
- client_max_body_size 8m;
- client_header_buffer_size 1k;
- large_client_header_buffers 4 16k;
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 65;
- types_hash_max_size 2048;
- }
复制代码
- 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 中设置负载平衡:
- upstream backend {
- server backend1.example.com weight=3;
- server backend2.example.com;
- }
- server {
- listen 80;
- location / {
- proxy_pass http://backend;
- proxy_set_header Host $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;
- }
- }
复制代码
- upstream backend { ... }: 界说一个包罗多个服务器的后端组。
- weight=3;: 以指定的权重分配流量,将三倍的流量发送到第一个服务器。
第七步:启用毗连缓存和调优
Nginx 毗连缓存和调优可以显着进步它处理惩罚多个毗连的方式。
在 nginx.conf 的 http 块下添加以下指令:
- http {
- proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
- server {
- location / {
- proxy_cache my_cache;
- proxy_cache_valid 200 1h;
- proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
- proxy_pass http://backend;
- }
- }
- }
复制代码
- proxy_cache_path: 界说缓存署理相应的路径。
- proxy_cache_use_stale: 如果后端服务器不可用,则利用逾期的缓存相应。
第八步:设置安全设置
掩护你的 Nginx 服务器还可以防止 DDoS 攻击并进步性能。
限定哀求巨细和速率限定:
- http {
- limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
- server {
- location / {
- limit_req zone=one burst=5;
- }
- }
- }
复制代码
- limit_req_zone: 界说用于速率限定的共享内存地区。
- rate=10r/s: 将哀求限定为每秒 10 个哀求。
第九步:测试并重启 Nginx
在举行更改后,测试你的 Nginx 设置是否有错误并重启服务器。
测试 Nginx 设置:
重启 Nginx:
- sudo systemctl restart nginx
复制代码 末了
优化 Nginx 以应对高流量网站涉及到调解各种设置,以进步性能、镌汰耽误和掩护服务器。 通过依照这些步调,你可以确保你的 Nginx 服务器可以大概有效地处理惩罚大量流量。 定期监控 服务器的性能,并根据必要调解设置,以保持其最佳运行状态。
我的博客:https://blog.ivwv.site
雨云官网:https://rainyun.ivwv.site
|