197 lines
5.8 KiB
Plaintext
197 lines
5.8 KiB
Plaintext
|
|
# 开发环境统一入口配置
|
|||
|
|
|
|||
|
|
# 上游服务定义
|
|||
|
|
upstream gateway {
|
|||
|
|
server gateway:8080;
|
|||
|
|
keepalive 32;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
upstream portal {
|
|||
|
|
server portal:3000;
|
|||
|
|
keepalive 16;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
upstream app-bidding {
|
|||
|
|
server app-bidding:3001;
|
|||
|
|
keepalive 16;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
upstream app-customer-service {
|
|||
|
|
server app-customer-service:3002;
|
|||
|
|
keepalive 16;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
upstream shared {
|
|||
|
|
server shared:5000;
|
|||
|
|
keepalive 16;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# WebSocket 升级配置
|
|||
|
|
map $http_upgrade $connection_upgrade {
|
|||
|
|
default upgrade;
|
|||
|
|
'' close;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 主服务器配置
|
|||
|
|
server {
|
|||
|
|
listen 80;
|
|||
|
|
server_name localhost;
|
|||
|
|
|
|||
|
|
# 安全头
|
|||
|
|
add_header X-Frame-Options "SAMEORIGIN" always;
|
|||
|
|
add_header X-Content-Type-Options "nosniff" always;
|
|||
|
|
add_header X-XSS-Protection "1; mode=block" always;
|
|||
|
|
|
|||
|
|
# 开发环境允许所有跨域
|
|||
|
|
add_header Access-Control-Allow-Origin "*" always;
|
|||
|
|
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
|
|||
|
|
add_header Access-Control-Allow-Headers "DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization" always;
|
|||
|
|
|
|||
|
|
# 健康检查
|
|||
|
|
location /health {
|
|||
|
|
access_log off;
|
|||
|
|
return 200 "healthy\n";
|
|||
|
|
add_header Content-Type text/plain;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# ==================== 共享包服务(ES Module + Module Federation) ====================
|
|||
|
|
location /shared/ {
|
|||
|
|
proxy_pass http://shared:5000/;
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection $connection_upgrade;
|
|||
|
|
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;
|
|||
|
|
|
|||
|
|
# CORS(ES Module / Module Federation 必需)
|
|||
|
|
add_header Access-Control-Allow-Origin "*" always;
|
|||
|
|
add_header Access-Control-Allow-Methods "GET, OPTIONS" always;
|
|||
|
|
add_header Access-Control-Allow-Headers "Content-Type" always;
|
|||
|
|
|
|||
|
|
# ES Module MIME 类型
|
|||
|
|
if ($request_filename ~* \.(js|mjs)$) {
|
|||
|
|
add_header Content-Type "application/javascript; charset=utf-8";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 开发环境不缓存
|
|||
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|||
|
|
|
|||
|
|
# HMR 支持
|
|||
|
|
proxy_read_timeout 86400;
|
|||
|
|
proxy_send_timeout 86400;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# ==================== API 网关代理 ====================
|
|||
|
|
location /api/ {
|
|||
|
|
proxy_pass http://gateway/;
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection $connection_upgrade;
|
|||
|
|
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_connect_timeout 60s;
|
|||
|
|
proxy_send_timeout 60s;
|
|||
|
|
proxy_read_timeout 60s;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# WebSocket 代理
|
|||
|
|
location /ws/ {
|
|||
|
|
proxy_pass http://gateway/ws/;
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection "upgrade";
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
|
|||
|
|
# WebSocket 超时设置
|
|||
|
|
proxy_read_timeout 3600s;
|
|||
|
|
proxy_send_timeout 3600s;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# ==================== 主应用(Portal) ====================
|
|||
|
|
location / {
|
|||
|
|
proxy_pass http://portal/;
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection $connection_upgrade;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
|
|||
|
|
# Vite HMR 支持
|
|||
|
|
proxy_read_timeout 86400;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# ==================== 招投标应用 ====================
|
|||
|
|
location /bidding {
|
|||
|
|
rewrite ^/bidding/(.*)$ /$1 break;
|
|||
|
|
proxy_pass http://app-bidding/;
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection $connection_upgrade;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
|
|||
|
|
# Vite HMR 支持
|
|||
|
|
proxy_read_timeout 86400;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 招投标应用静态资源
|
|||
|
|
location /bidding/ {
|
|||
|
|
proxy_pass http://app-bidding/;
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection $connection_upgrade;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
|
|||
|
|
proxy_read_timeout 86400;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# ==================== 智能客服应用 ====================
|
|||
|
|
location /customer-service {
|
|||
|
|
rewrite ^/customer-service/(.*)$ /$1 break;
|
|||
|
|
proxy_pass http://app-customer-service/;
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection $connection_upgrade;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
|
|||
|
|
proxy_read_timeout 86400;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
location /customer-service/ {
|
|||
|
|
proxy_pass http://app-customer-service/;
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection $connection_upgrade;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
|
|||
|
|
proxy_read_timeout 86400;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# ==================== Nacos 管理界面(开发用) ====================
|
|||
|
|
location /nacos/ {
|
|||
|
|
proxy_pass http://nacos:8848/nacos/;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 可选:HTTPS 配置(开发环境使用自签名证书)
|
|||
|
|
# server {
|
|||
|
|
# listen 443 ssl http2;
|
|||
|
|
# server_name localhost;
|
|||
|
|
#
|
|||
|
|
# ssl_certificate /etc/nginx/ssl/cert.pem;
|
|||
|
|
# ssl_certificate_key /etc/nginx/ssl/key.pem;
|
|||
|
|
# ssl_protocols TLSv1.2 TLSv1.3;
|
|||
|
|
# ssl_ciphers HIGH:!aNULL:!MD5;
|
|||
|
|
#
|
|||
|
|
# # 其他配置同上...
|
|||
|
|
# }
|