mottery/cp.mzh.one.conf

98 lines
3.1 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.

server {
listen 80;
server_name cp.mzh.one;
# Let's Encrypt 验证路径(如需证书续期)
location /.well-known/acme-challenge/ {
root /opt/mottery/frontend/dist;
}
# 其它HTTP请求重定向到HTTPS
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name cp.mzh.one;
# SSL证书配置你自己处理路径
ssl_certificate /ssl/cp.mzh.one/cp.mzh.one.pem;
ssl_certificate_key /ssl/cp.mzh.one/cp.mzh.one.key;
# 前端静态资源 - 修复路径
location / {
root /opt/mottery/frontend/dist;
index index.html;
try_files $uri $uri/ /index.html last;
# 添加调试信息
add_header X-Debug-Path $document_root$uri always;
}
# 静态资源缓存 - 确保assets路径正确
location /assets/ {
root /opt/mottery/frontend/dist;
expires 1y;
add_header Cache-Control "public, immutable";
add_header X-Debug-Path $document_root$uri always;
}
# 其他静态资源
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
root /opt/mottery/frontend/dist;
expires 1y;
add_header Cache-Control "public, immutable";
add_header X-Debug-Path $document_root$uri always;
}
# 后端API代理 - 使用正确的Docker网关地址
location /api/ {
# 使用Docker默认网桥的网关地址
proxy_pass http://172.17.0.1:8000/;
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 30s;
proxy_send_timeout 30s;
proxy_read_timeout 30s;
# 解决跨域问题
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS";
add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization";
# 处理OPTIONS请求
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS";
add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization";
add_header Access-Control-Max-Age 1728000;
add_header Content-Type 'text/plain; charset=utf-8';
add_header Content-Length 0;
return 204;
}
}
# 健康检查端点
location /health {
proxy_pass http://172.17.0.1:8000/health;
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;
}
# 错误页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
client_max_body_size 50M;
}