diff --git a/backend/app/service/nginx_utils.go b/backend/app/service/nginx_utils.go index bb0f9023b..7dd1f195f 100644 --- a/backend/app/service/nginx_utils.go +++ b/backend/app/service/nginx_utils.go @@ -126,7 +126,7 @@ func updateNginxConfig(scope string, params []dto.NginxParam, website *model.Web return nginxCheckAndReload(config.OldContent, config.FilePath, nginxFull.Install.ContainerName) } -func deleteNginxConfig(scope string, keys []string, website *model.Website) error { +func deleteNginxConfig(scope string, params []dto.NginxParam, website *model.Website) error { nginxFull, err := getNginxFull(website) if err != nil { return err @@ -144,8 +144,8 @@ func deleteNginxConfig(scope string, keys []string, website *model.Website) erro block = config.Config.Block } - for _, key := range keys { - block.RemoveDirective(key, []string{}) + for _, param := range params { + block.RemoveDirective(param.Name, param.Params) } if err := nginx.WriteConfig(config.Config, nginx.IndentedStyle); err != nil { diff --git a/backend/app/service/website.go b/backend/app/service/website.go index 8d486e182..ef3d8dced 100644 --- a/backend/app/service/website.go +++ b/backend/app/service/website.go @@ -455,7 +455,13 @@ func (w WebsiteService) UpdateNginxConfigByScope(req request.NginxConfigUpdate) return err } if req.Operate == constant.ConfigDel { - return deleteNginxConfig(constant.NginxScopeServer, keys, &website) + var nginxParams []dto.NginxParam + for _, key := range keys { + nginxParams = append(nginxParams, dto.NginxParam{ + Name: key, + }) + } + return deleteNginxConfig(constant.NginxScopeServer, nginxParams, &website) } params := getNginxParams(req.Params, keys) if req.Operate == constant.ConfigNew { @@ -547,9 +553,12 @@ func (w WebsiteService) OpWebsiteHTTPS(ctx context.Context, req request.WebsiteH if err := deleteListenAndServerName(website, []int{443}, []string{}); err != nil { return response.WebsiteHTTPS{}, err } - keys := getKeysFromStaticFile(dto.SSL) - keys = append(keys, "if") - if err := deleteNginxConfig(constant.NginxScopeServer, keys, &website); err != nil { + nginxParams := getNginxParamsFromStaticFile(dto.SSL, nil) + nginxParams = append(nginxParams, dto.NginxParam{ + Name: "if", + Params: []string{"($scheme", "=", "http)"}, + }) + if err := deleteNginxConfig(constant.NginxScopeServer, nginxParams, &website); err != nil { return response.WebsiteHTTPS{}, err } if err := websiteRepo.Save(ctx, &website); err != nil { @@ -771,7 +780,12 @@ func (w WebsiteService) OpWebsiteLog(req request.WebsiteLogReq) (*response.Websi key = "error_log" website.ErrorLog = false } - if err := deleteNginxConfig(constant.NginxScopeServer, []string{key}, &website); err != nil { + var nginxParams []dto.NginxParam + nginxParams = append(nginxParams, dto.NginxParam{ + Name: key, + }) + + if err := deleteNginxConfig(constant.NginxScopeServer, nginxParams, &website); err != nil { return nil, err } if err := websiteRepo.Save(context.Background(), &website); err != nil { diff --git a/backend/utils/nginx/components/config.go b/backend/utils/nginx/components/config.go index 35bb1369b..7592895e7 100644 --- a/backend/utils/nginx/components/config.go +++ b/backend/utils/nginx/components/config.go @@ -39,9 +39,11 @@ func (c *Config) FindHttp() *Http { var repeatKeys = map[string]struct { }{ - "limit_conn": {}, - "limit_conn_zone": {}, - "set": {}, + "limit_conn": {}, + "limit_conn_zone": {}, + "set": {}, + "if": {}, + "proxy_set_header": {}, } func IsRepeatKey(key string) bool { diff --git a/backend/utils/nginx/components/server.go b/backend/utils/nginx/components/server.go index 01b468061..961b71859 100644 --- a/backend/utils/nginx/components/server.go +++ b/backend/utils/nginx/components/server.go @@ -277,4 +277,5 @@ func (s *Server) AddHTTP2HTTPS() { }) newDir.Block = block s.UpdateDirectiveBySecondKey("if", "($scheme", newDir) + } diff --git a/cmd/server/nginx_conf/http2https.conf b/cmd/server/nginx_conf/http2https.conf deleted file mode 100644 index 24780cf77..000000000 --- a/cmd/server/nginx_conf/http2https.conf +++ /dev/null @@ -1,3 +0,0 @@ -if ($server_port !~ 443){ - rewrite ^(/.*)$ https://$host$1 permanent; -} \ No newline at end of file diff --git a/cmd/server/nginx_conf/http_per.conf b/cmd/server/nginx_conf/http_per.conf deleted file mode 100644 index 661c4bac4..000000000 --- a/cmd/server/nginx_conf/http_per.conf +++ /dev/null @@ -1,14 +0,0 @@ -server_names_hash_bucket_size 512; -client_header_buffer_size 32k; -client_max_body_size 50m; -keepalive_timeout 60; - -gzip on; -gzip_min_length 1k; -gzip_buffers 4 16k; -gzip_http_version 1.1; -gzip_comp_level 2; -gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml; -gzip_vary on; -gzip_proxied expired no-cache no-store private auth; -gzip_disable "MSIE [1-6]\."; \ No newline at end of file diff --git a/cmd/server/nginx_conf/nginx_conf.go b/cmd/server/nginx_conf/nginx_conf.go index 1ffad8997..eab723201 100644 --- a/cmd/server/nginx_conf/nginx_conf.go +++ b/cmd/server/nginx_conf/nginx_conf.go @@ -7,9 +7,6 @@ import ( //go:embed ssl.conf var SSL []byte -//go:embed http2https.conf -var HTTPS []byte - //go:embed website_default.conf var WebsiteDefault []byte @@ -18,6 +15,3 @@ var Limit []byte //go:embed index.html var Index []byte - -//go:embed http_per.conf -var HttpPer []byte diff --git a/cmd/server/nginx_conf/ssl.conf b/cmd/server/nginx_conf/ssl.conf index 159d20c10..12e2e97a3 100644 --- a/cmd/server/nginx_conf/ssl.conf +++ b/cmd/server/nginx_conf/ssl.conf @@ -7,3 +7,4 @@ ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; add_header Strict-Transport-Security "max-age=31536000"; error_page 497 https://$host$request_uri; +proxy_set_header X-Forwarded-Proto https; diff --git a/frontend/src/components/status/index.vue b/frontend/src/components/status/index.vue index 79eb9260e..acaf68b9f 100644 --- a/frontend/src/components/status/index.vue +++ b/frontend/src/components/status/index.vue @@ -1,8 +1,6 @@ @@ -17,17 +15,6 @@ const props = defineProps({ }); let status = ref('running'); -// const getColor = (status: string) => { -// switch (status) { -// case 'running': -// return '#00c957'; -// case 'error': -// return '#ff0000'; -// default: -// return ''; -// } -// }; - const getType = (status: string) => { switch (status) { case 'running': diff --git a/frontend/src/lang/index.ts b/frontend/src/lang/index.ts index 3fe899c96..4603ef6ba 100644 --- a/frontend/src/lang/index.ts +++ b/frontend/src/lang/index.ts @@ -3,9 +3,9 @@ import zh from './modules/zh'; import en from './modules/en'; const i18n = createI18n({ - legacy: false, // 如果要支持 compositionAPI,此项必须设置为 false - locale: 'zh', // 设置语言类型 - globalInjection: true, // 全局注册$t方法 + legacy: false, + locale: 'zh', + globalInjection: true, messages: { zh, en, diff --git a/frontend/src/store/index.ts b/frontend/src/store/index.ts index 97f9e2338..3474c78d1 100644 --- a/frontend/src/store/index.ts +++ b/frontend/src/store/index.ts @@ -9,7 +9,7 @@ export const GlobalStore = defineStore({ state: (): GlobalState => ({ isLogin: false, csrfToken: '', - assemblySize: 'small', + assemblySize: 'default', language: '', themeConfig: { panelName: '', diff --git a/frontend/src/store/interface/index.ts b/frontend/src/store/interface/index.ts index 880be1e5c..ee1daedfe 100644 --- a/frontend/src/store/interface/index.ts +++ b/frontend/src/store/interface/index.ts @@ -1,6 +1,5 @@ import { RouteRecordRaw } from 'vue-router'; -/* themeConfigProp */ export interface ThemeConfigProp { panelName: string; primary: string; @@ -8,7 +7,6 @@ export interface ThemeConfigProp { footer: boolean; } -/* GlobalState */ export interface GlobalState { isLogin: boolean; csrfToken: string; @@ -22,7 +20,6 @@ export interface MenuState { menuList: RouteRecordRaw[]; } -/* AuthState */ export interface AuthState { authRouter: string[]; }