Files
admin-ui/ngnix.conf
T
2026-08-27 09:23:22 +08:00

276 lines
7.6 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.
# Nginx 静态文件服务 + 智能代理 + 自定义 404 页面
# AI 爬虫 User-Agent 黑名单
map $http_user_agent $badbot {
default 0;
~*(GPTBot|ChatGPT-User|Claude-Web|ClaudeBot|Bytespider|CCBot|Google-Extended) 1;
}
# WebSocket 升级头透传:客户端带 Upgrade 头(WS 握手)时 Connection 置 upgrade,普通 REST 请求保持 close
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# 主站 HTTPSSL 已在外层 nginx 终结,此处只需 serve 内容)
server {
root /usr/share/nginx/html;
index index.html;
client_max_body_size 500M;
listen 80;
server_name redpowerfuture.com www.redpowerfuture.com;
error_page 404 /404.html;
location = /404.html {
internal;
}
location = / {
return 302 /web/index.html;
}
location = /web {
return 302 /web/;
}
location = /sys {
return 302 /sys/;
}
location /web/ {
alias /usr/share/nginx/html/web/;
try_files $uri $uri/ /web/index.html;
}
location /sys/ {
alias /usr/share/nginx/html/;
try_files $uri $uri/ /index.html;
}
location / {
try_files $uri $uri/ @proxy;
}
location @proxy {
if ($uri ~ \.[^./]+$) {
return 404;
}
proxy_pass http://__API_HOST__:8000;
proxy_http_version 1.1;
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 升级头透传(首页会话长连接 /ai-agent/session/wsExecute 依赖握手成功)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_connect_timeout 75s;
proxy_send_timeout 86400s;
proxy_read_timeout 86400s;
}
}
# Gitea HTTP → HTTPS 重定向
server {
listen 80;
server_name gitea.redpowerfuture.com;
client_max_body_size 500M;
if ($badbot) {
return 444;
}
return 301 https://$host$request_uri;
}
# MinIO HTTP/HTTPS(增加 WebSocket 支持)
server {
listen 80;
server_name minio.redpowerfuture.com;
client_max_body_size 500M;
location / {
proxy_pass http://__API_HOST__:9001;
proxy_http_version 1.1;
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 支持
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400s;
}
}
# Consul HTTP(仅 HTTP
server {
listen 80;
server_name consul.redpowerfuture.com;
client_max_body_size 500M;
location / {
proxy_pass http://__API_HOST__:8500;
proxy_http_version 1.1;
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;
}
}
# MeiliSearch HTTP(仅 HTTP
server {
listen 80;
server_name meilisearch.redpowerfuture.com;
client_max_body_size 500M;
location / {
proxy_pass http://__API_HOST__:7700;
proxy_http_version 1.1;
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;
}
}
# 项目管理 HTTP(仅 HTTP
server {
listen 80;
server_name pm.redpowerfuture.com;
client_max_body_size 500M;
location / {
proxy_pass http://__API_HOST__:8080;
proxy_http_version 1.1;
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;
}
}
# jaeger HTTP(仅 HTTP
server {
listen 80;
server_name jaeger.redpowerfuture.com;
client_max_body_size 500M;
location / {
proxy_pass http://__API_HOST__:16686;
proxy_http_version 1.1;
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;
}
}
# observer HTTP(转发到 18080
server {
listen 80;
server_name observer.redpowerfuture.com;
client_max_body_size 500M;
location / {
proxy_pass http://__API_HOST__:18080;
proxy_http_version 1.1;
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 升级头透传
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 86400s;
}
}
# ==================== 主站 HTTPS(静态文件 + API 反向代理) ====================
server {
root /usr/share/nginx/html;
index index.html;
client_max_body_size 500M;
listen 443 ssl;
server_name redpowerfuture.com www.redpowerfuture.com;
ssl_certificate /etc/nginx/ssl/scs1779764972146_redpowerfuture.com_server.crt;
ssl_certificate_key /etc/nginx/ssl/scs1779764972146_redpowerfuture.com_server.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
error_page 404 /404.html;
location = /404.html {
internal;
}
location = / {
return 302 /web/index.html;
}
location = /web {
return 302 /web/;
}
location = /sys {
return 302 /sys/;
}
location /web/ {
alias /usr/share/nginx/html/web/;
try_files $uri $uri/ /web/index.html;
}
location /sys/ {
alias /usr/share/nginx/html/;
try_files $uri $uri/ /index.html;
}
location / {
try_files $uri $uri/ @proxy;
}
location @proxy {
if ($uri ~ \.[^./]+$) {
return 404;
}
proxy_pass http://__API_HOST__:8000;
proxy_http_version 1.1;
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 升级头透传(首页会话长连接 /ai-agent/session/wsExecute 依赖握手成功)
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_connect_timeout 75s;
proxy_send_timeout 86400s;
proxy_read_timeout 86400s;
}
}
# ==================== Gitea HTTPS ====================
server {
listen 443 ssl;
server_name gitea.redpowerfuture.com;
client_max_body_size 500M;
ssl_certificate /etc/nginx/ssl/gitea.redpowerfuture.com.pem;
ssl_certificate_key /etc/nginx/ssl/gitea.redpowerfuture.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
if ($badbot) {
return 403;
}
proxy_pass http://__API_HOST__:3000;
proxy_http_version 1.1;
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 75s;
proxy_send_timeout 86400s;
proxy_read_timeout 86400s;
}
}