Nginx 配置速查
Kurta kichwa ya maelezo ya mazingira ya Nginx, kwa kufikia na kubadilisha kodi ya mazingira kwa haraka
Kuweka idadi ya watumiaji kwa kawaida kama idadi ya kipande cha CPU
worker_processes auto;
Kuweka idadi ya uhusiano kwa kila watumiaji wa kazi
events {
worker_connections 1024;
}Kuingiza mazingira ya MIME
include /etc/nginx/mime.types; default_type application/octet-stream;
Kuamsha usafirishaji wa faili wa kasi
sendfile on; tcp_nopush on; tcp_nodelay on;
Kuweka muda wa kumaliza uhusiano wa kubwa
keepalive_timeout 65;
Kuweka ukubwa wa kubwa wa maelezo ya mtu aliyechukua
client_max_body_size 100M;
Kuficha nambari ya toleo la Nginx
server_tokens off;
Mazingira ya msingi ya kifaa cha Server
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
}Kuweka mawasiliano mengi
server_name example.com www.example.com;
Kuweka mawasiliano ya wildcard
server_name *.example.com;
Kuweka mawasiliano ya msingi
listen 80 default_server;
Kuwa na mawasiliano kwa anwani ya IPv6
listen [::]:80;
Kuweka eneo la msingi au jina la kifupi
root /var/www/html; # Au kutumia alias alias /var/www/files/;
Ukubwa wa kawaida wa njia
location = /path {
# Ukubwa wa kawaida
}Ukubwa wa kwanza wa njia
location /api/ {
# Ukubwa wa kwanza
}Ukubwa wa msimbo
location ~ \.php$ {
# Ukubwa wa msimbo (kwa ukubwa wa herufi)
}Ukubwa wa msimbo bila ukubwa wa herufi
location ~* \.\(jpg|jpeg|png|gif\)$ {
# Ukubwa wa msimbo (bila ukubwa wa herufi)
}优先前缀匹配(优先于正则)
location ^~ /images/ {\n #优先前缀匹配\n}尝试文件顺序(SPA 应用常用)
location / {\n try_files $uri $uri/ /index.html;\n}仅允许内部请求访问
location /internal/ {\n internal;\n}基础反向代理配置
location /api/ {\n proxy_pass http://backend:3000/;\n}设置代理请求头
proxy_set_header Host $host;\nproxy_set_header X-Real-IP $remote_addr;\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_set_header X-Forwarded-Proto $scheme;
WebSocket 代理配置
location /ws/ {\n proxy_pass http://backend:3000/;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}定义上游服务器组
upstream backend {\n server 127.0.0.1:3000;\n server 127.0.0.1:3001;\n keepalive 32;\n}负载均衡配置
upstream backend {\n least_conn; # 或 ip_hash;\n server 127.0.0.1:3000;\n server 127.0.0.1:3001;\n}代理超时设置
proxy_connect_timeout 60s;\nproxy_send_timeout 60s;\nproxy_read_timeout 60s;
代理缓冲区配置
proxy_buffering on;\nproxy_buffer_size 4k;\nproxy_buffers 8 4k;
基础 SSL 配置
server {\n listen 443 ssl http2;\n ssl_certificate /path/to/cert.pem;\n ssl_certificate_key /path/to/key.pem;\n}设置 SSL 协议版本
ssl_protocols TLSv1.2 TLSv1.3;
设置加密套件
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;\nssl_prefer_server_ciphers on;
SSL 会话缓存
ssl_session_cache shared:SSL:10m;\nssl_session_timeout 1d;
HTTP 重定向到 HTTPS
server {\n listen 80;\n server_name example.com;\n return 301 https://$server_name$request_uri;\n}启用 HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
启用 OCSP Stapling
ssl_stapling on;\nssl_stapling_verify on;\nresolver 8.8.8.8 8.8.4.4 valid=300s;
静态资源缓存
location ~* \\.\.(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ {\n expires 30d;\n add_header Cache-Control "public, immutable";\n}禁用缓存
location /api/ {\n add_header Cache-Control "no-store, no-cache, must-revalidate";\n}代理缓存配置
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g;\n\nlocation / {\n proxy_cache my_cache;\n proxy_cache_valid 200 1d;\n}启用 ETag
etag on;
启用条件请求
if_modified_since before;
基础 Gzip 压缩配置
gzip on;\ngzip_vary on;\ngzip_min_length 1024;\ngzip_comp_level 6;
设置压缩的 MIME 类型
gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml;
对代理请求启用压缩
gzip_proxied any;
Enable pre-compressed files
gzip_static on;
CORS cross-origin configuration
add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,Content-Type";
XSS and clickjacking protection
add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options SAMEORIGIN;
Content Security Policy
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'";
Request rate limiting
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
location /api/ {
limit_req zone=one burst=20 nodelay;
}Block access to hidden files
location ~ /\. {
deny all;
}IP whitelist
location /admin/ {
allow 192.168.1.0/24;
deny all;
}Access log configuration
access_log /var/log/nginx/access.log;
Error log configuration
error_log /var/log/nginx/error.log warn;
Custom log format
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';JSON format log
log_format json escape=json '{"time":"$time_iso8601","ip":"$remote_addr","method":"$request_method","uri":"$uri","status":$status}';Disable access log
access_log off;
Conditional logging (log only errors)
map $status $loggable {
~^[23] 0;
default 1;
}
access_log /var/log/nginx/access.log combined if=$loggable;File descriptor cache
open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2;
Enable multi-accept and epoll
events {
multi_accept on;
use epoll;
}FastCGI cache
fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=fastcgi:10m;
location ~ \.php$ {
fastcgi_cache fastcgi;
fastcgi_cache_valid 200 1h;
}Connection limit
limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 100;
Timeout optimization
client_body_timeout 12; client_header_timeout 12; send_timeout 10;
📖Introdução à ferramenta.
Recursos.
❓Perguntas frequentes.
🔗Ferramentas relacionadas.
Analisador de expressões Cron
Valide a sintaxe Cron e pré-visualize os horários de execução futuros.
JSON para CSV
Converter dados JSON para o formato CSV
JSON para YAML
Converter dados JSON para o formato YAML
Conversor de JSON para XML
Converter dados JSON para o formato XML
YAML para JSON
Converter configuração YAML para dados no formato JSON
Formatador de JSON
Formatar, validar e comprimir dados JSON
Visualização de JSON
Exibir dados JSON em estrutura de árvore
Gerador de dados JSON
Gerar dados JSON simulados para testes
Tradutor JSON i18n
Traduzir todo o arquivo de idioma JSON de uma só vez. Cole o conteúdo base, escolha o idioma-alvo; a ferramenta usará chaves achatadas para chamar a API OpenRouter.
Comparação de diferenças de JSON
Comparar as diferenças entre dois JSONs.
Gerador de código QR
Gerar imagem de código QR personalizada
Gerador de imagens placeholder SVG
Gerar imagem placeholder SVG personalizada
Conversor de imagens Base64
Ferramenta de conversão entre imagens e codificação Base64
Gerador de UUID
Gerar UUIDs únicos em lote
Gerador de senhas
Gerar senhas aleatórias seguras e confiáveis
Codificação e decodificação Base64
Ferramenta de codificação e decodificação de strings Base64
Codificação/decodificação de URL
Ferramenta de codificação e decodificação de strings URL
Gerador de hash MD5
Ferramenta para gerar hash MD5
Gerador de hash SHA256
Ferramenta para gerar hash SHA256
Gerador de hash SHA1
Ferramenta para gerar hash SHA1
Codificador/decodificador hexadecimal
Ferramenta de codificação/decodificação de strings hexadecimal
Codificador/decodificador binário
Ferramenta de codificação/decodificação de strings binárias
Criptografador/Descriptografador AES
Ferramenta de criptografia e descriptografia AES (algoritmo de criptografia simétrica)
Ferramenta de criptografia/descriptografia RSA
Ferramenta de criptografia RSA assimétrica
Gerador de HMAC
Gerador de código de autenticação de mensagem HMAC.
Consulta de endereço IP
Localização geográfica e informações de rede do endereço IP
Conversor de milissegundos
Converte entre carimbo de tempo em milissegundos e a string yyyy-MM-dd HH:mm:ss.