diff --git a/ZR.Admin.WebApi/Dockerfile b/ZR.Admin.WebApi/Dockerfile index 0f0f4be..d945070 100644 --- a/ZR.Admin.WebApi/Dockerfile +++ b/ZR.Admin.WebApi/Dockerfile @@ -1,21 +1,21 @@ FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base -# /appļ +#创建 /app文件夹 WORKDIR /app -#Ŀ¼,ڽڷ +#创建挂载目录,用于将程序部署在服务器本地 #VOLUME /app -#dockerⱩ¶˿ +#设置docker容器对外暴露端口 EXPOSE 8888 VOLUME /app/logs #COPY bin/Release/net5.0/publish/ app/ COPY . app/ -#ڵʱãĬʱDZ׼ʱȱʱ8Сʱ +#设置容器内的时区,如果不设置,默认时区是标准时间比北京时间晚8个小时 RUN echo "Asia/shanghai" > /etc/timezone RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -# ƷļĿ¼ +# 复制发布文件到工作目录 #COPY . app/ WORKDIR /app -#ȼ dotnet ZR.Admin.WebApi.dllָ˿Ĭdocker˿80˿ +#等价于 dotnet ZR.Admin.WebApi.dll,如果不指定启动端口默认在docker里面启动端口是80端口 ENTRYPOINT ["dotnet", "ZR.Admin.WebApi.dll", "--server.urls","http://*:8888"] \ No newline at end of file diff --git a/ZR.Admin.WebApi/appsettings.json b/ZR.Admin.WebApi/appsettings.json index 3736ced..20fecc6 100644 --- a/ZR.Admin.WebApi/appsettings.json +++ b/ZR.Admin.WebApi/appsettings.json @@ -7,97 +7,97 @@ } }, "ConnectionStrings": { - "conn_db": "server=LAPTOP-STKF2M8H\\SQLEXPRESS;uid=sa;pwd=zradmin123;database=ZrAdmin;Trusted_Connection=SSPI" + "conn_db": "Data Source=LAPTOP-STKF2M8H\\SQLEXPRESS;User ID=sa;Password=zradmin123;Initial Catalog=ZrAdmin;Integrated Security=SSPI", //其他连接字符串请看官方文档 + "conn_db_type": "1" //数据库类型 MySql = 0, SqlServer = 1 }, - "conn_db_dbtype": 1, //ݿ MySql = 0, SqlServer = 1 - "urls": "http://localhost:8888", //ĿurlĶ˿ǰ˶ӦdevServerҲҪ޸ - "corsUrls": "http://localhost:8887", //ַǰĿǰ˷뵥Ҫã"," + "urls": "http://localhost:8888", //项目启动url,如果改动端口前端对应devServer也需要进行修改 + "corsUrls": "http://localhost:8887", //跨域地址(前端启动项目,前后端分离单独部署需要设置),多个用","隔开 "JwtSettings": { "Issuer": "ZRAdmin.NET", "Audience": "ZRAdmin.NET", "SecretKey": "SecretKey-ZRADMIN.NET-20210101", - "Expire": 1440 //jwt¼ʱ䣨֣ + "Expire": 1440 //jwt登录过期时间(分) }, - "DemoMode": false, //Ƿʾģʽ + "DemoMode": false, //是否演示模式 "Upload": { "UploadUrl": "http://localhost:8888", - "localSavePath": "" //ϴļ洢Ŀ¼/home/website/uploads + "localSavePath": "" //本地上传文件存储目录/home/website/uploads }, - //ƴ洢 + //阿里云存储配置 "ALIYUN_OSS": { "REGIONID": "cn-hangzhou", "KEY": "XX", "SECRET": "XX", "bucketName": "bucketName", - "domainUrl": "http://xxx.xxx.com" //Դ + "domainUrl": "http://xxx.xxx.com" //访问资源域名 }, "gen": { - "conn": "server=LAPTOP-STKF2M8H\\SQLEXPRESS;user=zr;pwd=abc;database=ZrAdmin;Trusted_Connection=SSPI", + "conn": "Data Source=LAPTOP-STKF2M8H\\SQLEXPRESS;User ID=sa;Password=zradmin123;Initial Catalog=ZrAdmin;Integrated Security=SSPI", "dbType": 1, //MySql = 0, SqlServer = 1 - "autoPre": true, //Զȥǰ׺ + "autoPre": true, //自动去除表前缀 "author": "admin", - "tablePrefix": "sys_", //"ǰ׺ǰ׺öŷָ", - "vuePath": "" //ǰ˴洢·egD:\Work\ZRAdmin-Vue3 + "tablePrefix": "sys_", //"表前缀(生成类名不会包含表前缀,多个用逗号分隔)", + "vuePath": "" //前端代码存储路径eg:D:\Work\ZRAdmin-Vue3 }, - //Ϣ + //邮箱配置信息 "MailOptions": { - // - "From": "", //egxxxx@qq.com - // + //发送人邮箱 + "From": "", //eg:xxxx@qq.com + //发送人邮箱密码 "Password": "123456", - //Э + //协议 "Smtp": "smtp.qq.com", "Port": 587 }, - //redis + //redis服务配置 "RedisServer": { "Cache": "127.0.0.1:6379,defaultDatabase=0,poolsize=50,ssl=false,writeBuffer=10240,prefix=cache:", "Session": "127.0.0.1:6379,defaultDatabase=0,poolsize=50,ssl=false,writeBuffer=10240,prefix=session:" }, - //ӿ + //接口请求限制 "IpRateLimiting": { - //5ÿӷFalseʱĿÿӿڶĸӿڣֻҪһۼƹ5Σֹʡ - //Trueһ5GetDataӿڣýӿڽʱڽֹʣǻԷPostData()5,ܵ˵ÿӿڶ5һӣš + //例如设置了5次每分钟访问限流。当False时:项目中每个接口都加入计数,不管你访问哪个接口,只要在一分钟内累计够5次,将禁止访问。 + //True:当一分钟请求了5次GetData接口,则该接口将在时间段内禁止访问,但是还可以访问PostData()5次,总得来说是每个接口都有5次在这一分钟,互不干扰。 "EnableEndpointRateLimiting": true, - //falseܾAPIòӵô; ͻÿ뷢3ÿһõƣÿӻÿƽ¼һãɹAPIáϣܾAPIüʱʾӣСʱȣ - //StackBlockedRequestsΪtrue + //false,拒绝的API调用不会添加到调用次数计数器上;如 客户端每秒发出3个请求并且您设置了每秒一个调用的限制,则每分钟或每天计数器等其他限制将仅记录第一个调用,即成功的API调用。如果您希望被拒绝的API调用计入其他时间的显示(分钟,小时等) + //,则必须设置StackBlockedRequests为true。 "StackBlockedRequests": false, "RealIpHeader": "X-Real-IP", - //ȡĿͻID˱ͷдڿͻIDClientWhitelistֵָƥ䣬Ӧơ + //取白名单的客户端ID。如果此标头中存在客户端ID并且与ClientWhitelist中指定的值匹配,则不应用速率限制。 "ClientIdHeader": "X-ClientId", "HttpStatusCode": 429, - //˵ + //端点白名单 "EndpointWhitelist": [ "post:/system/dict/data/types", "*:/msghub/negotiate", "*:/LogOut" ], - //ͻ˰ + //客户端白名单 //"ClientWhitelist": [ "dev-id-1", "dev-id-2" ], "QuotaExceededResponse": { - "Content": "{{\"code\":429,\"msg\":\"ʹƵԺ\"}}", + "Content": "{{\"code\":429,\"msg\":\"访问过于频繁,请稍后重试\"}}", "ContentType": "application/json", "StatusCode": 429 }, - //ͨùapi,βһҪ* + //通用规则,api规则,结尾一定要带* "GeneralRules": [ { "Endpoint": "*:/captchaImage", - //ʱΣʽ{}{λ}ʹõλs, m, h, d + //时间段,格式:{数字}{单位};可使用单位:s, m, h, d "Period": "3s", "Limit": 5 }, { "Endpoint": "post:*", - //ʱΣʽ{}{λ}ʹõλs, m, h, d + //时间段,格式:{数字}{单位};可使用单位:s, m, h, d "Period": "3s", "Limit": 1 }, { "Endpoint": "put:*", - //ʱΣʽ{}{λ}ʹõλs, m, h, d + //时间段,格式:{数字}{单位};可使用单位:s, m, h, d "Period": "3s", "Limit": 1 } //{ // "Endpoint": "*", - // //ʱΣʽ{}{λ}ʹõλs, m, h, d + // //时间段,格式:{数字}{单位};可使用单位:s, m, h, d // "Period": "1s", // "Limit": 2 //} @@ -118,7 +118,7 @@ //} ], "IpRateLimitPolicies": { - //ip + //ip规则 "IpRules": [ ] } diff --git a/ZR.Vue/src/settings.js b/ZR.Vue/src/settings.js index 7d96a04..ea42c85 100644 --- a/ZR.Vue/src/settings.js +++ b/ZR.Vue/src/settings.js @@ -2,7 +2,7 @@ module.exports = { /** * 框架版本号 */ - version: '3.8.0', + version: '3.8.1', title: 'ZrAdmin.NET-后台管理', /** * 主题颜色 diff --git a/ZR.Vue/src/views/index.vue b/ZR.Vue/src/views/index.vue index b148e79..19890b0 100644 --- a/ZR.Vue/src/views/index.vue +++ b/ZR.Vue/src/views/index.vue @@ -36,7 +36,7 @@

当前版本: v{{ version }} 更新日志 + @click="goTarget('http://www.izhaorui.cn/doc/changelog.html#' + version)">更新日志