🗣 Wd提问: nginx web配置
🤖 Ai回答: Nginx 是一个高性能的 HTTP 和反向代理服务器,常用于静态资源服务、负载均衡、反向代理等场景。下面我为你提供一个完整的 Nginx Web 配置示例,涵盖常见需求:静态文件服务、反向代理、HTTPS、重写规则、gzip 压缩、缓存控制等。
🧩 一、基础配置文件结构(`nginx.conf`)
通常位于 `/etc/nginx/nginx.conf` 或 `/usr/local/nginx/conf/nginx.conf`
nginx
全局配置
worker_processes auto; 自动匹配CPU核心数
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;
events {
worker_connections 1024; 单个进程最大连接数
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
日志格式
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_nagle off;
keepalive_timeout 65;
types_hash_max_size 2048;
Gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_proxied any;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
引入虚拟主机配置
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
🌐 二、虚拟主机配置(站点配置)
✅ 示例1:静态文件服务(如前端项目)
文件路径:`/etc/nginx/conf.d/myapp.conf`
nginx
server {
listen 80;
server_name myapp.com www.myapp.com;
root /var/www/myapp/dist; 前端构建后的目录
index index.html;
防止目录遍历
autoindex off;
重写规则:所有请求指向 index.html (单页应用)
location / {
try_files $uri $uri/ /index.html;
}
静态资源缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control public, immutable;
add_header Vary Accept-Encoding;
}
错误页面
error_page 404 /404.html;
location = /404.html {
internal;
}
日志
access_log /var/log/nginx/myapp-access.log;
error_log /var/log/nginx/myapp-error.log;
禁止访问 .git 目录
location ~ /\.git {
deny all;
}
}
✅ 示例2:反向代理后端 API(Node.js / Python / Java)
文件路径:`/etc/nginx/conf.d/backend-proxy.conf`
nginx
server {
listen 80;
server_name api.myapp.com;
反向代理到本地 Node.js 应用(端口3000)
location / {
proxy_pass http://127.0.0.1:3000;
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
}
WebSocket 支持
location /ws/ {
proxy_pass http://127.0.0.1:3000/ws/;
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
}
HTTPS 重定向(可选)
if ($scheme != https) {
return 301 https://$server_name$request_uri;
}
访问日志
access_log /var/log/nginx/backend-access.log;
error_log /var/log/nginx/backend-error.log;
}
✅ 示例3:HTTPS + Let’s Encrypt(推荐生产环境)
安装 Certbot 后,自动配置:
nginx
server {
listen 443 ssl http2;
server_name myapp.com www.myapp.com;
ssl_certificate /etc/letsencrypt/live/myapp.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myapp.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
root /var/www/myapp/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
缓存静态资源
location ~* \.(css|js|png|jpg|jpeg|gif|ico|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control public, immutable;
}
强制 HTTPS 重定向(如果需要)
也可在 80 端口监听中做重定向
if ($scheme != https) {
return 301 https://$server_name$request_uri;
}
}
🔧 三、常用指令说明
| 指令 | 作用 |
| `listen` | 监听端口(如 80、443) |
| `server_name` | 域名或 IP 地址 |
| `root` | 静态文件根目录 |
| `location` | 路径匹配规则 |
| `proxy_pass` | 反向代理地址 |
| `try_files` | 尝试文件或路由 |
| `expires` | 设置缓存时间 |
| `add_header` | 添加响应头(如 Cache-Control) |
| `gzip` | 开启压缩 |
| `if ($scheme != https)` | 重定向到 HTTPS |
⚡ 四、测试 & 重启 Nginx
bash
测试配置文件语法
sudo nginx -t
重新加载配置(不中断服务)
sudo systemctl reload nginx
启动/停止/重启
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
🛡️ 五、安全建议
不要暴露 `.git`, `.svn` 等目录。
使用 `allow/deny` 限制访问来源。
设置 `client_max_body_size` 防止大文件上传攻击。
使用 `limit_req` 限流防 DDOS。
定期更新证书(Let’s Encrypt 自动续期)。
📁 六、推荐目录结构
/etc/nginx/
├── nginx.conf 主配置文件
├── conf.d/ 虚拟主机配置(推荐)
│ ├── myapp.conf
│ └── backend-proxy.conf
├── sites-enabled/ 链接到 conf.d 的符号链接(可选)
└── logs/ 日志目录
├── access.log
└── error.log
✅ 如果你有具体需求(比如部署 Vue/React、Node.js、Django、PHP、WebSocket、CDN 缓存、限流、WAF),可以告诉我,我可以为你定制配置!
📌 提示:生产环境建议使用 `systemd` 管理 Nginx,并配合 `logrotate` 管理日志。
需要我帮你生成完整部署脚本或 Docker Compose 配置?欢迎继续提问!
📣 商家广告:





0
IP地址: 225.103.94.163
搜索次数: 0
提问时间: 2025-11-11 01:05:39
🛒 域名购买:
jjxs.cn
qtem.cn
r-t.com.cn
zong.org.cn
3.ln.cn
010.hk
y-u.com.cn
352.net.cn
40.gold
652.net.cn
❓️ 热门提问:
push域名是什么意思
外贸怎么选服务器
站群SEO网站日志性能监控工具行业分析
云服务器python
ip定位系统
机房地面防尘漆
求一个国外服务器
菲律宾马尼拉机场
云服务器越南
自动挡挂n档需要踩刹车吗
豌豆Ai站群搜索引擎系统
🌐 域名评估:
arxw.cn
mj.gs
mm.nx.cn
uahf.cn
yu7.hn.cn
vision2100.org.cn
tt.gs.cn
bjis.cn
jldj.cn
tt.jx.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
谷哥seo
租vps平台
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。