Files
ruoyi-vue/nginx-https.conf
T
2026-03-24 16:24:00 +08:00

179 lines
6.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.
# WebSocket连接升级映射(必须在server块之前定义)
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# 80端口:仅处理HTTP请求,自动重定向到HTTPS
server {
listen 80;
server_name jarvis.van333.cn; # 匹配域名
# 核心:HTTP请求永久重定向到HTTPS(301表示永久重定向)
return 301 https://$host$request_uri;
# 可选:记录重定向日志(便于排查)
access_log /www/sites/jarvis.van333.cn/log/redirect.log main;
}
# 443端口:处理HTTPS请求,包含SSL配置和业务逻辑
server {
listen 443 ssl;
server_name jarvis.van333.cn; # 与80端口保持一致的域名
# 网站根目录和默认首页(保留你的业务配置)
root /www/sites/jarvis.van333.cn/index;
index index.html index.htm;
# SSL证书配置(仅在443端口生效)
ssl_certificate /www/common/ssl/jarvis.van333.cn/fullchain.cer;
ssl_certificate_key /www/common/ssl/jarvis.van333.cn.key;
# SSL安全配置(复用你的原有配置)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
# 日志配置
access_log /www/sites/jarvis.van333.cn/log/access.log main;
error_log /www/sites/jarvis.van333.cn/log/error.log;
# 静态资源缓存配置
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
try_files $uri =404;
}
# ========== 重要:后端API代理配置 ==========
# 将所有API请求代理到后端服务器(解决混合内容问题)
# 注意:这里的路径需要与前端 VUE_APP_BASE_API 配置一致
# ^~ 表示命中前缀后不再尝试正则 location,避免被其它规则干扰
location ^~ /jarvis-api/ {
proxy_pass http://127.0.0.1:30313/; # 后端服务地址
# 请求头设置
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_set_header X-Forwarded-Host $server_name;
# 勿手动设置 Content-Type / Content-Length:multipart 上传必须原样转发(含 boundary),
# 且分块请求时 $content_length 可能为空,会导致后端报「not a multipart request」。
proxy_pass_request_headers on;
proxy_pass_request_body on;
# HTTP版本和WebSocket支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# 超时设置
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
# 请求缓冲设置(对大文件上传有用)
proxy_request_buffering on;
client_max_body_size 100M;
}
# OAuth 回调:须放在 /jarvis-api/ 之后、location / 之前。
# 切勿重复定义同名 location(例如两个 /wps365-callback,仅第一个生效)。
# 腾讯文档 OAuth 回调
location /tendoc-callback {
proxy_pass http://127.0.0.1:30313/tendoc-callback;
# 请求头设置
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_set_header X-Forwarded-Host $server_name;
proxy_pass_request_headers on;
proxy_pass_request_body on;
# HTTP版本
proxy_http_version 1.1;
# 超时设置
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
# 请求体大小限制
client_max_body_size 100M;
}
# 金山文档:旧回调路径(后端 302 → /kdocs-callback,仅过渡用;后台建议改为 /kdocs-callback)
location /wps365-callback {
proxy_pass http://127.0.0.1:30313/wps365-callback;
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_set_header X-Forwarded-Host $server_name;
proxy_pass_request_headers on;
proxy_pass_request_body on;
proxy_http_version 1.1;
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
client_max_body_size 100M;
}
# 金山文档 OAuth 回调(与 kdocs.redirect-uri、开放平台登记一致)
location /kdocs-callback {
proxy_pass http://127.0.0.1:30313/kdocs-callback;
# 请求头设置
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_set_header X-Forwarded-Host $server_name;
proxy_pass_request_headers on;
proxy_pass_request_body on;
# HTTP版本
proxy_http_version 1.1;
# 超时设置
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
# 请求体大小限制
client_max_body_size 100M;
}
# 注意:jarvis相关API已通过 /jarvis-api/ 代理,不再需要单独的 /jarvis/ location
# Druid监控代理(如果需要)
location /druid/ {
proxy_pass http://127.0.0.1:30313/druid/;
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;
}
# Vue Router History模式支持(必须放在最后)
location / {
try_files $uri $uri/ /index.html;
}
# 404错误页面
error_page 404 /404.html;
}