Files
chuanqi-qycq-web/nginx.conf.example
艾贤凌 1405bfdd86 clear php
2026-03-16 13:10:18 +08:00

110 lines
5.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ═══════════════════════════════════════════════════════════════════
# 清渊传奇 H5 游戏平台 — Nginx 反向代理配置
# 路径:/etc/nginx/conf.d/chuanqi.conf
# ═══════════════════════════════════════════════════════════════════
#
# 架构说明:
# ┌─────────────────────────────────────────┐
# │ 浏览器 │
# │ ↓ HTTPS :443 / HTTP :80 │
# │ Nginx │
# │ ├── /api/* → Node.js :3001 │
# │ ├── /public/* → 静态文件Egret
# │ └── 其他 → Vue dist 目录 │
# └─────────────────────────────────────────┘
#
# ═══════════════════════════════════════════════════════════════════
upstream chuanqi_api {
server 127.0.0.1:3001;
keepalive 32;
}
# ─── HTTP → HTTPS 重定向 ──────────────────────────────────────────
server {
listen 80;
server_name your-domain.com;
# Let's Encrypt / ACME 验证(如使用)
location /.well-known/acme-challenge/ {
root /var/www/html;
}
location / {
return 301 https://$host$request_uri;
}
}
# ─── HTTPS 主配置 ─────────────────────────────────────────────────
server {
listen 443 ssl http2;
server_name your-domain.com;
# ── SSL 证书(替换为实际路径)─────────────────────────────────
ssl_certificate /etc/ssl/certs/your-domain.crt;
ssl_certificate_key /etc/ssl/private/your-domain.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# ── 基础配置 ──────────────────────────────────────────────────
charset utf-8;
client_max_body_size 20m;
# ── 0. 屏蔽 PHP 文件直接访问PHP 已停用,防止残留文件被暴露)──
location ~* \.php$ {
return 404;
}
# ── 1. API 请求 → Node.js ─────────────────────────────────────
location /api/ {
proxy_pass http://chuanqi_api;
proxy_http_version 1.1;
proxy_set_header Connection "";
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_read_timeout 30s;
proxy_connect_timeout 10s;
}
# ── 2. Egret 游戏静态资源(大量小文件,强缓存)──────────────
location /public/ {
alias /path/to/chuanqi-qycq-web/public/;
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
}
# ── 3. 游戏入口 js每次重载─────────────────────────────────
location ~* ^/js/(index|loader|microclient)\.js$ {
root /path/to/chuanqi-qycq-web;
expires -1;
add_header Cache-Control "no-cache, no-store";
}
# ── 4. 其他静态资源(图片/字体等,适度缓存)─────────────────
location ~* \.(png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot)$ {
root /path/to/chuanqi-qycq-web/module/web/dist;
expires 7d;
add_header Cache-Control "public";
access_log off;
}
# ── 5. Vue 前端distHTML5 History 模式)───────────────────
location / {
root /path/to/chuanqi-qycq-web/module/web/dist;
index index.html;
# SPA 路由回退
try_files $uri $uri/ /index.html;
expires -1;
add_header Cache-Control "no-cache";
}
# ── 日志 ──────────────────────────────────────────────────────
access_log /var/log/nginx/chuanqi_access.log;
error_log /var/log/nginx/chuanqi_error.log warn;
}