运维优化:Nginx配置技巧分享 Nginx 是一个高性能的 Web 服务器和反向代理服务器,运用广泛,许多大型互联网企业都在使用它。为了让 Nginx 更好地服务于我们的业务,我们需要深入了解它的配置技巧。 本文将分享一些 Nginx 配置技巧,包含如下内容: 1. 配置文件组织 2. 静态资源的处理 3. 动态请求的处理 4. 反向代理配置 5. HTTPS 部署和优化 1. 配置文件组织 在 Nginx 中,我们可以通过 `include` 指令引入其他配置文件。这样做的好处在于,可以将不同的配置分离到不同的文件中,让配置更加清晰、易于维护。 例如,我们可以在主配置文件 `nginx.conf` 中引入 `server` 配置文件: ``` http { include /etc/nginx/conf.d/*.conf; ... } ``` 这样就可以将不同的 `server` 配置写在不同的文件中,比如 `example.com.conf` ,更加方便管理。 2. 静态资源的处理 在 Nginx 中,静态资源处理是一项非常重要的工作。这里分享一些优化技巧。 2.1 启用 gzip 压缩 将静态资源进行 gzip 压缩,可以大大减小文件大小,提高页面加载速度。可以通过以下配置启用 gzip 压缩: ``` http { gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ... } ``` 2.2 启用静态资源缓存 启用静态资源缓存可以减少服务器负载,提高页面加载速度。可以通过以下配置启用静态资源缓存: ``` http { ... server { ... location /static/ { expires 7d; } } } ``` 这里的配置将静态资源缓存 7 天,可以根据实际情况进行调整。 3. 动态请求的处理 在 Nginx 中,动态请求的处理同样是非常重要的。下面分享一些优化技巧。 3.1 启用缓存 启用缓存可以减少服务器负载,提高页面加载速度。可以通过以下配置启用缓存: ``` http { ... proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { ... location /api/ { proxy_pass http://backend; proxy_cache my_cache; proxy_cache_valid 200 60m; proxy_cache_bypass $http_pragma; proxy_cache_revalidate on; add_header X-Cache-Status $upstream_cache_status; } } } ``` 这里的配置将 `/api/` 的请求缓存 60 分钟。 3.2 启用 FastCGI 缓存 启用 FastCGI 缓存可以加速动态请求的处理。可以通过以下配置启用 FastCGI 缓存: ``` http { ... fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { ... location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_cache my_cache; fastcgi_cache_valid 200 60m; fastcgi_cache_bypass $http_pragma; fastcgi_cache_revalidate on; add_header X-Cache-Status $upstream_cache_status; } } } ``` 这里的配置将 `.php` 的请求缓存 60 分钟。 4. 反向代理配置 在 Nginx 中,反向代理是一项非常常见的配置。这里分享一些优化技巧。 4.1 启用代理缓存 启用代理缓存可以减少服务器负载,提高页面加载速度。可以通过以下配置启用代理缓存: ``` http { ... proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { ... location /api/ { proxy_pass http://backend; proxy_cache my_cache; proxy_cache_valid 200 60m; proxy_cache_bypass $http_pragma; proxy_cache_revalidate on; add_header X-Cache-Status $upstream_cache_status; } } } ``` 这里的配置将 `/api/` 的请求缓存 60 分钟。 4.2 启用负载均衡 启用负载均衡可以实现高可用性和高性能。可以通过以下配置启用负载均衡: ``` http { ... upstream backend { server 10.0.0.1; server 10.0.0.2; } server { ... location /api/ { proxy_pass http://backend; } } } ``` 这里的配置将请求转发到两台不同的服务器上。 5. HTTPS 部署和优化 在互联网时代,HTTPS 已经成为了一个标准。这里分享一些 HTTPS 部署和优化的技巧。 5.1 启用 HTTPS 启用 HTTPS 可以保证数据传输的安全性。可以通过以下配置启用 HTTPS: ``` http { ... server { ... listen 443 ssl; ssl_certificate /path/to/cert; ssl_certificate_key /path/to/key; ... } } ``` 这里的配置将监听 443 端口,并加载证书和私钥。 5.2 启用 HSTS 启用 HSTS 可以防止 SSL 中间人攻击。可以通过以下配置启用 HSTS: ``` http { ... server { ... add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; ... } } ``` 这里的配置将 HSTS 设置为一年,并启用了子域名和预加载。 5.3 启用 OCSP Stapling 启用 OCSP Stapling 可以减少 OCSP 查询的网络延迟。可以通过以下配置启用 OCSP Stapling: ``` http { ... ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/ca-certs; resolver 8.8.8.8; resolver_timeout 10s; ... } ``` 这里的配置将启用 OCSP Stapling,并设置验证和信任的 CA 证书。 总结 本文分享了一些 Nginx 的配置技巧,包含了文件组织、静态资源处理、动态请求处理、反向代理配置和 HTTPS 部署和优化。希望能对大家的工作有所帮助。