perlCopy codeuser nginx; # 運行 Nginx 的用戶
worker_processes 1; # 工作進程的數量
error_log /var/log/nginx/error.log warn; # 錯誤日志路徑和級別
pid /var/run/nginx.pid; # 進程 ID 文件路徑
events {
worker_connections 1024; # 每個 worker 進程的最大并發連接數
}
http {
include /etc/nginx/mime.types; # MIME 類型配置文件
default_type Application/octet-stream; # 默認 MIME 類型
log_format mAIn '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; # 日志格式
access_log /var/log/nginx/access.log main; # 訪問日志路徑和格式
sendfile on; # 是否開啟文件傳輸優化
#tcp_nopush on; # 是否開啟 TCP NOPUSH 模式
#keepalive_timeout 0; # HTTP keep-alive 連接超時時間
server {
listen 80; # 監聽端口
server_name example.com; # 域名或 IP 地址
charset utf-8; # 字符編碼
location / {
root /usr/share/nginx/html; # 靜態文件根目錄
index index.html index.htm; # 默認首頁文件
}
error_page 500 502 503 504 /50x.html; # 錯誤頁面
location = /50x.html {
root /usr/share/nginx/html;
}
location /api/ {
proxy_pass http://127.0.0.1:8000/; # 反向代理到后端應用服務器
}
# HTTPS 配置
# listen 443 ssl;
# server_name example.com;
# ssl_certificate /path/to/cert;
# ssl_certificate_key /path/to/key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
}
}
user: 指定運行 Nginx 的用戶。通常為 nginx 用戶。
worker_processes: 指定 Nginx 工作進程的數量。通常為 CPU 核心數的 2 倍。
error_log: 指定 Nginx 錯誤日志的路徑和級別。級別包括 debug、info、notice、warn、error、crit、alert、emerg 等。
pid: 指定 Nginx 進程 ID 文件的路徑。
events: 指定 Nginx 事件模型的參數,如 worker_connections 指定每個 worker 進程的最大并發連接數。
http: 定義 HTTP 協議的配置,包括 MIME 類型、日志格式、訪問日志路徑和格式、文件傳輸優化、TCP NOPUSH 模式等。
include: 引入外部配置文件,如 MIME 類型配置文件 /etc/nginx/mime.types。
default_type: 指定默認的 MIME 類型。
log_format: 指定訪問日志的格式。
access_log: 指定訪問日志的路徑和格式。
sendfile: 指定是否開啟文件傳輸優化。
keepalive_timeout: 指定 HTTP keep-alive 連接超時時間。
server: 定義一個虛擬主機,包括監聽端口、域名或 IP 地址、字符編碼、靜態文件根目錄、默認首頁文件、錯誤頁面、反向代理配置等。
listen: 指定監聽的端口,如 80、443。
server_name: 指定域名或 IP 地址。
charset: 指定字符編碼。
location: 定義 URL 路徑匹配規則,包括靜態文件根目錄、默認首頁文件、錯誤頁面、反向代理配置等。
2. 其他配置
-
user
語法:
user user_name [group_name];
worker_processes number;
-
worker_processes -
worker_cpu_affinity
語法:worker_cpu_affinity cpumask1 [cpumask2 ...];
-
worker_rlimit_nofile
worker_rlimit_nofile number;
-
worker_shutdown_timeout
worker_shutdown_timeout time;
-
http2
http2 on|off;
-
ssl
ssl on|off;
-
proxy_pass
proxy_pass URL;
-
proxy_set_header
proxy_set_header field value;
-
client_max_body_size
client_max_body_size size;
-
gzip
gzip on|off;
-
server_tokens
server_tokens on|off;
-
access_log
access_log path [format [buffer=size] [flush=time] [if=condition]];
-
error_log
error_log path [level];
-
include
include file_path;
-
ssl
ssl on|off;
-
ssl_certificate 和 ssl_certificate_key
ssl_certificate file_path; 和 ssl_certificate_key file_path;
-
ssl_protocols
ssl_protocols protocol1 [protocol2 ...];
-
ssl_ciphers
ssl_ciphers cipher1 [cipher2 ...];
-
ssl_prefer_server_ciphers
ssl_prefer_server_ciphers on|off;