admin-vue3/nginx.conf

102 lines
3.3 KiB
Nginx Configuration File

# Nginx 配置文件 - 前后端同服务器部署
# 适用于 Vue3 前端 + 后端 API 部署在同一台服务器
server {
listen 3080; # 前端服务端口
# 请根据实际情况修改域名,如果没有域名可以使用服务器IP
server_name your-domain.com; # 修改为你的域名或服务器IP
# 前端静态文件根目录 - 构建后的 dist 目录
root /var/www/ncc-ui-admin-vue3/dist; # 修改为实际的部署路径
index index.html;
# 开启 gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss application/rss+xml font/truetype font/opentype application/vnd.ms-fontobject image/svg+xml;
gzip_disable "msie6";
# 静态资源缓存策略
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 7d;
add_header Cache-Control "public, immutable";
access_log off;
}
# 后端 API 代理配置
location /admin-api/ {
# 代理到后端服务,请根据实际后端端口修改
proxy_pass http://localhost:48080/admin-api/; # 修改为实际的后端地址和端口
# 代理请求头设置
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 支持(如果后端有 WebSocket 需求)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
# 请求体大小限制(根据需要调整,例如文件上传)
client_max_body_size 100M;
}
# 前端路由配置 - Vue Router history 模式支持
location / {
try_files $uri $uri/ /index.html;
add_header Cache-Control "no-cache, no-store, must-revalidate";
}
# 安全头部设置
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
# 错误页面
error_page 404 /index.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
# HTTPS 配置示例(如果需要 SSL 证书)
# server {
# listen 443 ssl http2;
# server_name your-domain.com;
#
# # SSL 证书路径
# ssl_certificate /path/to/your/certificate.crt;
# ssl_certificate_key /path/to/your/private.key;
#
# # SSL 配置
# ssl_protocols TLSv1.2 TLSv1.3;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# ssl_session_cache shared:SSL:10m;
# ssl_session_timeout 10m;
#
# # 其他配置与上面的 HTTP 配置相同
# root /var/www/ncc-ui-admin-vue3/dist;
# index index.html;
#
# # ... 复制上面的 location 配置 ...
# }
#
# # HTTP 自动跳转到 HTTPS
# server {
# listen 80;
# server_name your-domain.com;
# return 301 https://$server_name$request_uri;
# }