Nginx 配置生成器
编程开发
可视化生成 Nginx 配置文件,支持静态文件、反向代理、SPA 应用、负载均衡、PHP-FPM、WebSocket 等场景,可配置 SSL、Gzip、缓存等
选择场景
静态文件托管 HTML/CSS/JS 等静态资源
反向代理将请求转发到后端服务
SPA 应用Vue/React 单页应用部署
负载均衡多后端实例负载均衡
PHP-FPMPHP 应用配合 Nginx
WebSocketWebSocket 长连接代理
基本配置
静态文件配置
SSL/HTTPS
高级选项
nginx.conf
# Gzip 压缩
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;
gzip_min_length 1000;
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# 静态资源缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2?|ttf|svg)$ {
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
}
}
使用场景
| 场景 | 说明 | 提示 |
|---|---|---|
| 前端部署 | 为 Vue/React/Angular 等 SPA 应用配置 Nginx,解决刷新 404 问题 | 选择 SPA 应用场景,自动配置 try_files |
| API 网关 | 将域名请求反向代理到后端 API 服务,统一入口 | 选择反向代理,填入后端地址 |
| HTTPS 配置 | 为网站启用 SSL/HTTPS,配置证书和自动重定向 | 开启 SSL 后填入证书路径,建议启用 HSTS |
| 多实例部署 | 在多个后端实例间做负载均衡,提高可用性 | 选择负载均衡场景,添加多个上游服务器 |
| PHP 网站 | 为 WordPress/Laravel 等 PHP 应用配置 Nginx + PHP-FPM | 选择 PHP-FPM 场景,配置 socket 或 TCP 地址 |
| 实时应用 | 为 Socket.io/ws 等 WebSocket 应用配置长连接代理 | 选择 WebSocket 场景,自动配置 upgrade 头 |
常见问题
SPA 应用和普通静态文件有什么区别?
SPA 应用(Vue/React)使用前端路由,所有路径都需要返回 index.html,配置 try_files $uri $uri/ /index.html。普通静态文件使用 try_files $uri $uri/ =404,找不到文件时返回 404。
反向代理和负载均衡有什么区别?
反向代理是将请求转发到单个后端服务;负载均衡是在多个后端实例间分配请求。负载均衡是反向代理的增强版,适用于需要高可用和横向扩展的场景。
SSL 证书怎么获取?
可以使用 Let's Encrypt 免费获取:安装 certbot 后执行 certbot certonly --nginx -d yourdomain.com。证书路径通常在 /etc/letsencrypt/live/yourdomain.com/ 下。
Gzip 压缩有什么效果?
Gzip 可以将文本类资源(HTML/CSS/JS/JSON)压缩 60-80%,显著减少传输体积和加载时间。建议对 1KB 以上的文本资源启用 Gzip。
proxy_set_header 各字段的作用?
Host:传递原始域名;X-Real-IP:传递客户端真实 IP;X-Forwarded-For:传递 IP 链;X-Forwarded-Proto:传递原始协议(http/https)。这些头信息让后端能获取真实的客户端信息。
WebSocket 为什么要设置 proxy_read_timeout 86400?
WebSocket 是长连接,Nginx 默认 60 秒无数据就断开。设置 86400(24 小时)可保持连接不断开。实际应用中可根据需要调整。