Merge branch 'feature/workflow' of http://116.204.74.41:3000/red-future/admin-ui into feature/workflow
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
node_modules
|
||||
.git
|
||||
.gitignore
|
||||
*.md
|
||||
dist
|
||||
.cache
|
||||
+12
@@ -24,6 +24,18 @@ COPY ngnix.conf /etc/nginx/conf.d/default.conf
|
||||
# 复制SSL证书
|
||||
COPY ssl/* /etc/nginx/ssl/
|
||||
|
||||
# 启动时自动获取宿主机内网 IP,替换 __API_HOST__ 占位符
|
||||
RUN printf '%s\n' \
|
||||
'#!/bin/sh' \
|
||||
'set -e' \
|
||||
'if [ -n "$API_HOST" ]; then' \
|
||||
' HOST_IP="$API_HOST"' \
|
||||
'else' \
|
||||
' HOST_IP=$(route -n 2>/dev/null | grep "^0.0.0.0" | tr -s " " | cut -d " " -f2)' \
|
||||
'fi' \
|
||||
'sed -i "s/__API_HOST__/$HOST_IP/g" /etc/nginx/conf.d/default.conf' \
|
||||
> /docker-entrypoint.d/01-set-api-host.sh && chmod +x /docker-entrypoint.d/01-set-api-host.sh
|
||||
|
||||
EXPOSE 80 443
|
||||
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
|
||||
+71
-42
@@ -1,53 +1,110 @@
|
||||
# Nginx 静态文件服务 + 智能代理 + 自定义 404 页面
|
||||
|
||||
# Gitea 域名转发(HTTP)
|
||||
# 主站 HTTP → HTTPS 重定向
|
||||
server {
|
||||
listen 80;
|
||||
server_name redpowerfuture.com www.redpowerfuture.com;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
|
||||
# Gitea HTTP → HTTPS 重定向
|
||||
server {
|
||||
listen 80;
|
||||
server_name gitea.redpowerfuture.com;
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
|
||||
# MinIO 域名转发(HTTP)
|
||||
# MinIO HTTP 直连(支持 HTTP/HTTPS 双协议)
|
||||
server {
|
||||
listen 80;
|
||||
server_name minio.redpowerfuture.com;
|
||||
return 301 https://$host$request_uri;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
# HTTP 重定向到 HTTPS(其他域名)
|
||||
# Consul HTTP(仅 HTTP)
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
return 301 https://$host$request_uri;
|
||||
server_name consul.redpowerfuture.com;
|
||||
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;
|
||||
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;
|
||||
location / {
|
||||
proxy_pass http://192.168.0.83: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;
|
||||
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;
|
||||
}
|
||||
}
|
||||
# ==================== 主站 HTTPS(静态文件 + API 反向代理) ====================
|
||||
server {
|
||||
# 静态资源根目录(dist)
|
||||
root /usr/share/nginx/html;
|
||||
index index.html;
|
||||
|
||||
client_max_body_size 50M;
|
||||
|
||||
# SSL 配置
|
||||
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;
|
||||
|
||||
# 自定义 404 页面,保持 404 状态码
|
||||
error_page 404 /404.html;
|
||||
|
||||
location = /404.html {
|
||||
internal;
|
||||
}
|
||||
|
||||
# 根路径默认进入网页端
|
||||
location = / {
|
||||
return 302 /web/index.html;
|
||||
}
|
||||
|
||||
# 兼容无斜杠访问
|
||||
location = /web {
|
||||
return 302 /web/;
|
||||
}
|
||||
@@ -56,32 +113,26 @@ server {
|
||||
return 302 /sys/;
|
||||
}
|
||||
|
||||
# 网页端(public/web/index.html -> dist/web/index.html)
|
||||
location /web/ {
|
||||
alias /usr/share/nginx/html/web/;
|
||||
try_files $uri $uri/ /web/index.html;
|
||||
}
|
||||
|
||||
# 后台管理端(dist/index.html,前缀 /sys/)
|
||||
location /sys/ {
|
||||
alias /usr/share/nginx/html/;
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
# 1. 先尝试作为静态文件查找
|
||||
location / {
|
||||
try_files $uri $uri/ @proxy;
|
||||
}
|
||||
|
||||
# 2. 无法找到的请求(API路径)代理到后端
|
||||
location @proxy {
|
||||
# 判断 URI 最后一段是否有扩展名
|
||||
# 有扩展名返回 404,无扩展名则代理
|
||||
if ($uri ~ \.[^./]+$) {
|
||||
return 404;
|
||||
}
|
||||
|
||||
proxy_pass http://116.204.74.41:8000;
|
||||
proxy_pass http://__API_HOST__:8000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
@@ -93,7 +144,7 @@ server {
|
||||
}
|
||||
}
|
||||
|
||||
# Gitea 域名转发(HTTPS)
|
||||
# ==================== Gitea HTTPS ====================
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name gitea.redpowerfuture.com;
|
||||
@@ -104,7 +155,7 @@ server {
|
||||
ssl_ciphers HIGH:!aNULL:!MD5;
|
||||
|
||||
location / {
|
||||
proxy_pass http://gitea.redpowerfuture.com:3000;
|
||||
proxy_pass http://192.168.0.83:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
@@ -116,25 +167,3 @@ server {
|
||||
}
|
||||
}
|
||||
|
||||
# MinIO 域名转发(HTTPS)
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name minio.redpowerfuture.com;
|
||||
|
||||
ssl_certificate /etc/nginx/ssl/minio.redpowerfuture.com.pem;
|
||||
ssl_certificate_key /etc/nginx/ssl/minio.redpowerfuture.com.key;
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ciphers HIGH:!aNULL:!MD5;
|
||||
|
||||
location / {
|
||||
proxy_pass http://minio.redpowerfuture.com:9000;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAiQenl6SmaR+i9rEZn+4A+vyKd9ST0XNfKWIRUIyth5nhZOC+
|
||||
BAAB7wo4sGWS7seEpu0mQOkeAAdFGrjdjNhEhq+74sJAiKXgm8UixBGlDDB0czxI
|
||||
CtQ5BXM8oX32aR0oc3qjytiDxq8LsJhSJ5M33ZijbFhRxeUioYvdNznXDofcIK5X
|
||||
JSsTh/VhlpQcpvBYz/tiO9FjPC8z85RI+0U3uqFzuD0NCG7PG4mYDFG2RQpqaClh
|
||||
TGbB8Kqj6IsMA5ivlLVxoT165hW0anbEVSGS3a8yZ8tzcBkAk4CyoUaONDCvCTef
|
||||
yHBGq2ZnaMObCBnCyEwdssUJl3dVPKRK8x0O7QIDAQABAoIBAB5TNtgc5IT8Ltzo
|
||||
SZL2oXnp/JzTSxk9rpAid1F7qIWLXPGtuO96rvLfMLd86xzzw5wLfH09+dkowrbM
|
||||
tZ8PV271Ih/nPE/hYcknQe/hNcTyTjsYWpsm5y2ZGJBmp2sQvFx+BhSEgPkt0Oj2
|
||||
dKv0bRcZygTWsNYaROU6ZizsHHdG79ovS+EoDdHvkMTTO4J/5bLBOMTb6JAquoh3
|
||||
sJjuusbxJQMsR7vyNPDCaKQvyqqzHbckjCduh5tdOTsVNTLUhxbrrvXoe1i5g302
|
||||
QUcghEiQnE98ZHaypcBdMSvE3gGRKywmCez1na3HuadNCYvrDrBd7M0094lFe8HK
|
||||
61j5xfMCgYEAvyCAMf9Cp4B0Iibto4RR3FfkB5LmT7gN2wMTzU9x6mrhUuQM9oqg
|
||||
UItiINS8yhw973qYegxAapLVQTm6VErE8mykNhV2JrzFYrgIkwxMkeZX+AHrWJRD
|
||||
WAqh73BZRnzN7vhjnI9o6iDnwS2+XqkBcbzHTAQOQxCJQYbfmq8bQT8CgYEAt4qG
|
||||
hae/yj3ByOUAmgYLPSKMKJv321vB6gtNBU1RD6CcV4F6tW8T9ihOxGcibHJEA39S
|
||||
lyIqnLOBVsffMf06rjB/5+oUY10u9IOLmV+/HkPnR4dNesx1bSynatuaCJkMsGLZ
|
||||
Jc9Mjzf18/k5KuFUlW9OZflqrZmK4x77dzX/uNMCgYEAoKJHPD4mnjMW6DFBnyGx
|
||||
z3hLHZZ4XV36vyzp8q+ntXaY5BrpTjianrdXBPLnrRJpd6HZDxLG/QtlkolbMkcZ
|
||||
Ggr3RMFq6QnU97Bm/HfkzucC3l12mJ8brp5ZFa2eSuDQD93Rkp7xdX2saq7whgyT
|
||||
Oy2HbzslZXY7dchOnGo5hO8CgYB8JvUF9cnTGOE7bkRw64Owr+zVD2Oiezf5g/lu
|
||||
i7U4d/EpdAk4L1H2YZ+eVRFBAC4nm3mXh+IBK59iv0KoAt4ts9rhWkK+T+sSNOU6
|
||||
Mz0JUO9iQBDV7vXDisAYlUFlbXna2pJ+c/IassTpan0UF2Xqy2bhrcxOb502Mt/w
|
||||
7JL1RwKBgAUEFHwhFVqRSRTVUK7qJgys/okow602oIsxuaD2dDuLnQ+sCrLCSdZK
|
||||
GIiKSD2AUVg0lX3jWv0FJSWfc3DmxkeRXB7nMsZvdd217sI+/UvgEmm8j9ZaSPNx
|
||||
B8HEANFPjPdNv4rBke7h+c0LbffFJj2E+woTppRwu1LQ4fJK+Fmo
|
||||
-----END RSA PRIVATE KEY-----
|
||||
@@ -0,0 +1,62 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGHzCCBQegAwIBAgIQCBFA3zLwrBf2Ts9EwIgUMzANBgkqhkiG9w0BAQsFADBu
|
||||
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||
d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
|
||||
RFYgVExTIENBIC0gRzIwHhcNMjYwNjI1MDAwMDAwWhcNMjYwOTIyMjM1OTU5WjAh
|
||||
MR8wHQYDVQQDExZjZG4ucmVkcG93ZXJmdXR1cmUuY29tMIIBIjANBgkqhkiG9w0B
|
||||
AQEFAAOCAQ8AMIIBCgKCAQEAiQenl6SmaR+i9rEZn+4A+vyKd9ST0XNfKWIRUIyt
|
||||
h5nhZOC+BAAB7wo4sGWS7seEpu0mQOkeAAdFGrjdjNhEhq+74sJAiKXgm8UixBGl
|
||||
DDB0czxICtQ5BXM8oX32aR0oc3qjytiDxq8LsJhSJ5M33ZijbFhRxeUioYvdNznX
|
||||
DofcIK5XJSsTh/VhlpQcpvBYz/tiO9FjPC8z85RI+0U3uqFzuD0NCG7PG4mYDFG2
|
||||
RQpqaClhTGbB8Kqj6IsMA5ivlLVxoT165hW0anbEVSGS3a8yZ8tzcBkAk4CyoUaO
|
||||
NDCvCTefyHBGq2ZnaMObCBnCyEwdssUJl3dVPKRK8x0O7QIDAQABo4IDBDCCAwAw
|
||||
HwYDVR0jBBgwFoAUeN+RkF/u3qz2xXXr1UxVU+8kSrYwHQYDVR0OBBYEFIEPqevi
|
||||
mZcIRUqroAQbY8OSUDvyMD0GA1UdEQQ2MDSCFmNkbi5yZWRwb3dlcmZ1dHVyZS5j
|
||||
b22CGnd3dy5jZG4ucmVkcG93ZXJmdXR1cmUuY29tMD4GA1UdIAQ3MDUwMwYGZ4EM
|
||||
AQIBMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAO
|
||||
BgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMIGA
|
||||
BggrBgEFBQcBAQR0MHIwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0
|
||||
LmNvbTBKBggrBgEFBQcwAoY+aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0Vu
|
||||
Y3J5cHRpb25FdmVyeXdoZXJlRFZUTFNDQS1HMi5jcnQwDAYDVR0TAQH/BAIwADCC
|
||||
AX0GCisGAQQB1nkCBAIEggFtBIIBaQFnAHUAwjF+V0UZo0XufzjespBB68fCIVoi
|
||||
v3/Vta12mtkOUs0AAAGe/NA+xwAABAMARjBEAiACQ77/5D5Vd1/AY4hmqDqeheYR
|
||||
Q0oEPWVFKa2tVtA77gIgIbkFKMiJE/MPEkfh7wEAI+IRvEKkW8OoetJu8+tPWs8A
|
||||
dgDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZ780D6zAAAEAwBH
|
||||
MEUCIQDMVpjW9wbcnd3S/7HNEocFnl2QV+qOJIe4tJoMEgsoZwIgddASbOcKHYc2
|
||||
7p9gCHCiUlOEk3FR/SaRpnGW+F/y/DMAdgCUTkOH+uzB74HzGSQmqBhlAcfTXzgC
|
||||
AT9yZ31VNy4Z2AAAAZ780D7UAAAEAwBHMEUCICnb/ctP3+45HcMPVMJHyS8Sm5hk
|
||||
B20qMtlp5DmRJA2TAiEApCP3cRGv/sKtV68n1z30Hvih37X6f36wGTMsbL34I1Uw
|
||||
DQYJKoZIhvcNAQELBQADggEBACa9GfzcvecgPyVpPgAqKVF1mnktUzB+5/hMOdH1
|
||||
czjsyRPMvPlYAnMqsCKWasOoEZsTi2mYUdEDmcICcx5zJbYpKfs7m90ch6ZNCAV+
|
||||
ar6uyPGDdeVn2I8QMfJtOcKvpxW/hsZfWkRxDmT1d6bfoUuz94hloDdtEUOmoVUh
|
||||
Mz3BBsEeXX+n3YMM0ZTnz0xNCd7CYnjsVmDM6fvPOeurKM5aa4a2WPamNoFTVDs5
|
||||
iRaSDbmOc0N3pdNc9oYvZsSWQAYy+V2Pn6ncb1uKPFs6CmlAe2VtAIHGc++KlTZm
|
||||
XWfxdNX1o1hKuOFoNa9KZnijXOkO0ktHeI+/jF2uRhffFKE=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEqjCCA5KgAwIBAgIQDeD/te5iy2EQn2CMnO1e0zANBgkqhkiG9w0BAQsFADBh
|
||||
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
||||
MjAeFw0xNzExMjcxMjQ2NDBaFw0yNzExMjcxMjQ2NDBaMG4xCzAJBgNVBAYTAlVT
|
||||
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
||||
b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
|
||||
MjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO8Uf46i/nr7pkgTDqnE
|
||||
eSIfCFqvPnUq3aF1tMJ5hh9MnO6Lmt5UdHfBGwC9Si+XjK12cjZgxObsL6Rg1njv
|
||||
NhAMJ4JunN0JGGRJGSevbJsA3sc68nbPQzuKp5Jc8vpryp2mts38pSCXorPR+sch
|
||||
QisKA7OSQ1MjcFN0d7tbrceWFNbzgL2csJVQeogOBGSe/KZEIZw6gXLKeFe7mupn
|
||||
NYJROi2iC11+HuF79iAttMc32Cv6UOxixY/3ZV+LzpLnklFq98XORgwkIJL1HuvP
|
||||
ha8yvb+W6JislZJL+HLFtidoxmI7Qm3ZyIV66W533DsGFimFJkz3y0GeHWuSVMbI
|
||||
lfsCAwEAAaOCAU8wggFLMB0GA1UdDgQWBBR435GQX+7erPbFdevVTFVT7yRKtjAf
|
||||
BgNVHSMEGDAWgBROIlQgGJXm427mD/r6uRLtBhePOTAOBgNVHQ8BAf8EBAMCAYYw
|
||||
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
|
||||
AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
|
||||
Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
|
||||
Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdEcyLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
|
||||
/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
|
||||
MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAoBs1eCLKakLtVRPFRjBIJ9LJ
|
||||
L0s8ZWum8U8/1TMVkQMBn+CPb5xnCD0GSA6L/V0ZFrMNqBirrr5B241OesECvxIi
|
||||
98bZ90h9+q/X5eMyOD35f8YTaEMpdnQCnawIwiHx06/0BfiTj+b/XQih+mqt3ZXe
|
||||
xNCJqKexdiB2IWGSKcgahPacWkk/BAQFisKIFYEqHzV974S3FAz/8LIfD58xnsEN
|
||||
GfzyIDkH3JrwYZ8caPTf6ZX9M1GrISN8HnWTtdNCH2xEajRa/h9ZBXjUyFKQrGk2
|
||||
n2hcLrfZSbynEC/pSw/ET7H5nWwckjmAJ1l9fcnbqkU/pf6uMQmnfl0JQjJNSg==
|
||||
-----END CERTIFICATE-----
|
||||
Reference in New Issue
Block a user