匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

运维优化:Nginx配置技巧分享

运维优化: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 部署和优化。希望能对大家的工作有所帮助。