检查配置语法,改完配置先执行这一步
sudo nginx -t常用运维命令,以及静态站点、反向代理、HTTPS、缓存压缩、限流与单页应用等可直接粘贴的配置片段。
检查配置语法,改完配置先执行这一步
sudo nginx -t平滑重载配置,不中断现有连接
sudo nginx -s reload等待现有请求处理完再退出
sudo nginx -s quit查看编译参数与已加载模块
nginx -V查看 Nginx 服务状态
systemctl status nginx实时查看错误日志
tail -f /var/log/nginx/error.log最基础的静态站点配置
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}确保 Nginx 运行用户对站点目录有读权限
sudo chown -R www-data:www-data /var/www/example转发到本机服务并透传真实 IP 与协议
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}WebSocket 代理,必须带 Upgrade 与 Connection 头
location /ws/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 60s;
}设置上游连接与读写超时,避免请求长时间挂起
proxy_connect_timeout 5s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;启用 HTTPS 并只保留 TLS 1.2 / 1.3
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.pem;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:10m;
}HTTP 全站 301 跳转到 HTTPS
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}开启 gzip 压缩,只压缩文本类资源
gzip on;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_types text/css application/javascript application/json image/svg+xml;带 hash 的静态资源长缓存 30 天
location ~* \.(js|css|png|jpg|jpeg|gif|svg|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
}index.html 等入口文件禁止缓存,避免发布后拿到旧版本
add_header Cache-Control "no-cache, no-store, must-revalidate";按客户端 IP 限流,突发 20 个请求
# http 块中定义
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
# server 或 location 中使用
limit_req zone=api burst=20 nodelay;常用安全响应头,降低点击劫持与 MIME 嗅探风险
add_header X-Frame-Options SAMEORIGIN always;
add_header X-Content-Type-Options nosniff always;
add_header Referrer-Policy strict-origin-when-cross-origin always;禁止访问 .git、.env 等隐藏文件
location ~ /\.(?!well-known).* { deny all; }刷新子路由时不返回 404
location / {
try_files $uri $uri/ /index.html;
}前后端分离:静态资源走前端,接口反向代理到后端
location /api/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
}本网站使用 Cookie 以确保您在我们的网站上获得最佳体验。 隐私政策.