本篇整理了 2021 年常见的 Nginx 面试题,并附带详细解答,帮助你快速掌握 Nginx 相关知识。
1. 请简述 Nginx 的反向代理和负载均衡功能。
答案:
- 反向代理: Nginx 作为客户端和目标服务器之间的中间层,接收客户端请求并转发给后端服务器,并将服务器响应返回给客户端。
- 负载均衡: Nginx 可以根据配置的算法,将请求分发到不同的后端服务器,实现流量分担,提高系统可用性和性能。
2. Nginx 常用的负载均衡策略有哪些?
答案:
- 轮询 (round-robin): 按顺序逐个分配请求。
- 权重 (weight): 根据服务器权重分配不同比例的请求。
- IP 哈希 (ip_hash): 根据客户端 IP 地址进行哈希运算,将同一 IP 的请求分配到同一服务器。
- 最少连接 (least_conn): 将请求分配给当前连接数最少的服务器。
3. 如何配置 Nginx 实现动静分离?
答案:
可以使用 location 指令根据请求 URI 进行匹配,将静态文件请求直接由 Nginx 处理,动态请求转发给后端应用服务器。
location /static/ {
root /var/www/html;
}
location / {
proxy_pass http://backend;
}
4. 解释一下 Nginx 中 worker_processes 和 worker_connections 的作用。
答案:
- worker_processes: 定义 Nginx 启动的工作进程数,建议设置为 CPU 核心数。
- worker_connections: 定义每个工作进程的最大连接数。
5. 如何配置 Nginx 实现 HTTPS 访问?
答案:
需要在 Nginx 配置文件中配置 SSL 证书和密钥,并启用 HTTPS 监听端口。
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
# ... 其他配置 ...
}
6. 请列举一些常用的 Nginx 模块。
答案:
- ngx_http_core_module
- ngx_http_access_module
- ngx_http_rewrite_module
- ngx_http_proxy_module
- ngx_http_fastcgi_module
- ngx_http_upstream_module
- ngx_http_gzip_module
7. 如何查看 Nginx 的访问日志和错误日志?
答案:
- 访问日志: 默认路径为
/var/log/nginx/access.log
或/usr/local/nginx/logs/access.log
。 - 错误日志: 默认路径为
/var/log/nginx/error.log
或/usr/local/nginx/logs/error.log
。
8. 如何测试 Nginx 配置文件是否正确?
答案:
可以使用 nginx -t
命令进行语法检查。
9. 如何平滑重启 Nginx?
答案:
可以使用 nginx -s reload
命令。
10. Nginx 如何处理静态文件请求?
答案:
Nginx 可以直接处理静态文件请求,无需经过后端应用服务器,提高响应速度。
总结
以上是 Nginx 常用面试题的解析,希望对你有所帮助。
暂无评论