Nginx 常用指令手册
适用人群:自建服务器、需要配置或排查 Nginx 站点配置的站长与运维
核心概念
常用指令速查表
| 指令 | 作用 | 示例 |
|---|---|---|
server |
定义一个虚拟主机(站点)配置块 | server { ... } |
listen |
指定监听端口和协议(IPv4/IPv6、SSL) | listen 443 ssl; |
server_name |
匹配请求的域名 | server_name example.com www.example.com; |
root |
设置站点静态文件根目录 | root /var/www/example.com; |
index |
指定默认首页文件 | index index.html index.php; |
location |
按 URL 路径匹配并定义处理规则 | location /api/ { ... } |
proxy_pass |
反向代理,将请求转发到后端服务 | proxy_pass http://127.0.0.1:3000; |
proxy_set_header |
转发时设置/透传请求头 | proxy_set_header Host $host; |
ssl_certificate |
指定 SSL 证书文件路径 | ssl_certificate /etc/nginx/ssl/cert.pem; |
ssl_certificate_key |
指定 SSL 私钥文件路径 | ssl_certificate_key /etc/nginx/ssl/key.pem; |
return |
直接返回状态码或跳转,不再往下匹配 | return 301 https://$host$request_uri; |
rewrite |
按正则改写请求 URI | rewrite ^/old$ /new permanent; |
try_files |
依次尝试文件,找不到则走最后一个规则 | try_files $uri $uri/ /index.html; |
error_page |
自定义错误页面 | error_page 404 /404.html; |
gzip |
开启响应压缩 | gzip on; |
client_max_body_size |
限制请求体大小(如上传文件) | client_max_body_size 20m; |
location 匹配优先级
从高到低:精确匹配(= /path)> 前缀最长匹配且带 ^~ 优先跳过正则 > 正则匹配(~ 区分大小写、~* 不区分)> 普通前缀匹配。写配置时应注意顺序不代表优先级,Nginx 会按规则自动选择最优匹配。
HTTP 强制跳转 HTTPS 常见写法
在 80 端口的 server 块中用 return 301 https://$host$request_uri; 是官方推荐方式,比 rewrite 效率更高、逻辑更清晰。
实际示例
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/nginx/ssl/example.com.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
location /api/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
对应工具
常见问题
修改 Nginx 配置后如何生效?
server_name 可以配置多个域名吗?
proxy_pass 末尾加不加斜杠有区别吗?
相关教程
相关文章
备案站点的 Nginx 反向代理配置要点
反向代理在备案站点里的位置 典型链路是"用户 → Nginx(反向代理/负载)→ 后端应用"。备案约束的是"域名 + 接入服务商",反向代理层本身不改变备案,但它的配置直接影响可用性、日志质量与合规展示——配错了轻则路由错乱,重则埋下核查隐患。 回源与 Host 透传 反代把请求转发给后端时,要让后端拿到正确的域名信…
网站 HTTPS 怎么配置?SSL 证书申请、Nginx 部署与自动续期
HTTPS 已经是网站上线的标配:浏览器会对纯 HTTP 站点提示"不安全",搜索引擎也更青睐 HTTPS。配置 HTTPS 的核心是申请一张 SSL/TLS 证书、在服务器上部署、并确保它自动续期不过期。本文按运维实操讲清楚。 先分清:HTTPS 和备案是两回事 SSL 证书解决的是"传输加密与身份可信",ICP …
网站长期闲置未更新是否有备案风险
一些企业完成备案后,网站长期停留在初版内容甚至处于近乎空白的状态,没有持续更新维护。这类闲置网站虽然不一定直接违规,但在信息核实环节容易引起额外关注。 闲置网站常见的表现 网站长期显示“建设中”或仅有极少页面; 网站内容与备案登记的服务类型明显不符或过于简单; 服务器长期未续费,网站时常无法访问。 可以先用 网站可用…
官方资料来源