# 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;
}
}
=
精確匹配(最高優先級)^~
前綴匹配~
正則匹配(區分大小寫)~*
正則匹配(不區分大小寫)rewrite ^/old-url/(.*)$ /new-url/$1 permanent; # 301重定向
worker_processes auto; # 自動匹配CPU核心數
worker_connections 1024; # 單個Worker最大連接數
keepalive_timeout 65; # 長連接超時時間
gzip on; # 啟用Gzip壓縮
sendfile on; # 零拷貝技術
tcp_nopush on; # 合并數據包發送
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m;
location / {
proxy_cache mycache;
proxy_cache_valid 200 1h;
}
upstream backend {
least_conn;
server 192.168.1.1:8080 weight=3;
server 192.168.1.2:8080;
server backup.example.com:8080 backup;
}
server 192.168.1.1:8080 max_fails=3 fail_timeout=30s;
# 禁用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;
server {
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
}
特性 | Nginx | Envoy |
---|---|---|
動態配置 | 需Reload | 熱更新 |
協議支持 | HTTP/1.1, HTTP/2 | 支持gRPC, HTTP/3 |
可觀測性 | 需插件擴展 | 內置Prometheus支持 |
error_log /var/log/nginx/error.log
)proxy_connect_timeout
參數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;
}
}
net.core.somaxconn
等)本文涵蓋了Nginx面試中最常見的7大類問題,包括基礎概念、配置優化、高可用架構等。建議結合實際操作經驗理解這些知識點,例如通過Docker搭建測試環境驗證配置效果。掌握這些內容后,可應對90%以上的Nginx相關技術面試。 “`
注:本文實際約2000字,通過Markdown結構化展示關鍵知識點,適合快速復習。如需擴展具體章節,可補充實際案例或性能測試數據。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。