Nginx面试中常见题目有哪些

发布时间:2021-12-10 16:07:01 作者:iii
来源:亿速云 阅读:245
# Nginx面试中常见题目有哪些

## 目录
1. [Nginx基础概念](#1-nginx基础概念)  
2. [Nginx核心配置](#2-nginx核心配置)  
3. [Nginx性能优化](#3-nginx性能优化)  
4. [Nginx高可用与负载均衡](#4-nginx高可用与负载均衡)  
5. [Nginx安全相关](#5-nginx安全相关)  
6. [Nginx与其他服务对比](#6-nginx与其他服务对比)  
7. [实际场景问题](#7-实际场景问题)  

---

## 1. Nginx基础概念

### 1.1 什么是Nginx?
Nginx是一个高性能的**HTTP和反向代理服务器**,同时支持IMAP/POP3/SMTP协议。它以**事件驱动**的异步非阻塞架构著称,能够处理高并发连接(官方测试可达5万并发)。

### 1.2 Nginx vs Apache主要区别?
| 特性               | Nginx                  | Apache               |
|--------------------|------------------------|----------------------|
| 架构               | 事件驱动、异步非阻塞   | 多线程/多进程        |
| 资源占用           | 低内存消耗             | 高并发时资源占用较高 |
| 动态内容处理       | 需通过FastCGI转发      | 原生支持模块化处理   |
| .htaccess支持      | 不支持                 | 支持                 |

### 1.3 Nginx的主进程和工作进程
- **Master Process**:负责读取配置、管理Worker进程(平滑重启/日志回收)。
- **Worker Process**:实际处理请求的进程(数量通常设置为CPU核心数)。

---

## 2. Nginx核心配置

### 2.1 常见配置指令
```nginx
server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.html;

    location /api {
        proxy_pass http://backend;
    }
}

2.2 Location匹配优先级

  1. = 精确匹配(最高优先级)
  2. ^~ 前缀匹配
  3. ~ 正则匹配(区分大小写)
  4. ~* 正则匹配(不区分大小写)
  5. 普通前缀匹配

2.3 Rewrite规则示例

rewrite ^/old-url/(.*)$ /new-url/$1 permanent;  # 301重定向

3. Nginx性能优化

3.1 关键优化参数

worker_processes auto;  # 自动匹配CPU核心数
worker_connections 1024; # 单个Worker最大连接数
keepalive_timeout 65;    # 长连接超时时间
gzip on;                 # 启用Gzip压缩

3.2 文件传输优化

sendfile on;             # 零拷贝技术
tcp_nopush on;           # 合并数据包发送

3.3 缓存配置

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m;
location / {
    proxy_cache mycache;
    proxy_cache_valid 200 1h;
}

4. Nginx高可用与负载均衡

4.1 负载均衡算法

4.2 配置示例

upstream backend {
    least_conn;
    server 192.168.1.1:8080 weight=3;
    server 192.168.1.2:8080;
    server backup.example.com:8080 backup;
}

4.3 健康检查

server 192.168.1.1:8080 max_fails=3 fail_timeout=30s;

5. Nginx安全相关

5.1 常见安全措施

# 禁用Server头信息
server_tokens off;

# 限制HTTP方法
if ($request_method !~ ^(GET|POST)$ ) {
    return 405;
}

# 防止DDoS
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

5.2 HTTPS配置

server {
    listen 443 ssl;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
}

6. Nginx与其他服务对比

6.1 Nginx vs OpenResty

6.2 Nginx vs Envoy

特性 Nginx Envoy
动态配置 需Reload 热更新
协议支持 HTTP/1.1, HTTP/2 支持gRPC, HTTP/3
可观测性 需插件扩展 内置Prometheus支持

7. 实际场景问题

7.1 如何排查502 Bad Gateway?

  1. 检查后端服务是否存活
  2. 查看Nginx错误日志(error_log /var/log/nginx/error.log
  3. 检查防火墙/网络连通性
  4. 调整proxy_connect_timeout参数

7.2 如何实现灰度发布?

map $cookie_version $backend {
    default "production";
    "v2"    "canary";
}

upstream production { server 192.168.1.1; }
upstream canary    { server 192.168.1.2; }

server {
    location / {
        proxy_pass http://$backend;
    }
}

7.3 百万QPS架构设计要点

  1. 多级缓存(Nginx + Redis + 本地缓存)
  2. 动静分离
  3. 四层负载均衡(LVS) + 七层负载均衡(Nginx集群)
  4. 内核参数优化(net.core.somaxconn等)

总结

本文涵盖了Nginx面试中最常见的7大类问题,包括基础概念、配置优化、高可用架构等。建议结合实际操作经验理解这些知识点,例如通过Docker搭建测试环境验证配置效果。掌握这些内容后,可应对90%以上的Nginx相关技术面试。 “`

注:本文实际约2000字,通过Markdown结构化展示关键知识点,适合快速复习。如需扩展具体章节,可补充实际案例或性能测试数据。

推荐阅读:
  1. 西安尚学堂JSP常见面试题目合集
  2. c语言经典面试题目有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nginx

上一篇:css如何让文本自动改变大小

下一篇:Nginx的事件处理模型怎么理解

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》