diff --git a/ReadMe.md b/ReadMe.md
index 1adafbb..7ad029b 100644
--- a/ReadMe.md
+++ b/ReadMe.md
@@ -1,12 +1,12 @@
# 项目预览
-不知道为什么,图床用的使自己的,Gitee就是不显示其它GitHub和Gitea都能显示就Gitee显示不出来
-
-或者把项目clone下来看也可以
+不知道为什么,图床用的使自己的,Gitee就是不显示其它GitHub和Gitea都能显示就Gitee显示不出来,如果想用Gitee就把ReadMe文件下载下来也行;或者把项目clone下来看也可以
**线上地址**
-- 正式线上预览地址:http://111.229.137.235/#/welcome
+- 正式线上预览地址:http://bunny-web.site/#/welcome
+
+ - 线上地址目前使用的是90天的SSL证书,可能会提示链接不安全,忽略就好了
- 测试预览地址:http://106.15.251.123/#/welcome
- 服务器到期时间:12月30日
@@ -177,6 +177,74 @@ FLUSH PRIVILEGES;
![image-20241107133345299](http://116.196.101.14:9000/docs/image-20241107133345299.png)
+## 后端日志文件
+
+在后端日志文件中,使用了`logback.xml`进行格式化。然而,使用`logback.xml`后,配置文件中指定的日志输出文件位置可能会失效。如果项目是通过Docker部署的,想在宿主机查看日志文件需要进行文件映射。
+
+### 使用SpringBoot
+
+在配置文件中,指定名称和目录路径即可,之后使用docker映射就可以在宿主机看到日志了
+
+如果想要用自带需要删除`logback.xml`文件
+
+```
+logging:
+ level:
+ cn.bunny.service.mapper: warn
+ cn.bunny.service.controller: warn
+ cn.bunny.service.service: warn
+ root: warn
+ pattern:
+ dateformat: HH:mm:ss:SSS
+ file:
+ path: "logs/${spring.application.name}"
+ name: "logs/${spring.application.name}"
+```
+
+### 使用logback.xml
+
+指定目录的位置`D:/logs/${datetime}/auth-server.log`根据你需要的指定
+
+```xml
+
+
+
+
+
+
+ %cyan([%thread]) %yellow(%-5level) %green(%logger{100}).%boldRed(%method)-%boldMagenta(%line)- %blue(%msg%n)
+
+
+
+
+
+
+ /www/root/server/logs/${datetime}/auth-server.log
+ true
+
+ %date{yyyy-MM-dd HH:mm:ss} %-5level %logger{100} %method %line %msg%n
+ UTF-8
+
+
+```
+
+> 如果按照上面搭建,日志文件会在`/www/root/server/logs`下,即使使Windows系统也会存在,如果docker使用的是文件映射,那么日志文件会在容器相对应的位置
+
+如果开发环境或者其他环境也需要日志,可以根据当前环境进行选择``
+
+```xml
+
+
+
+
+
+
+
+
+
+
+```
+
# 项目特点
### 按钮权限显示
@@ -810,59 +878,25 @@ public class MenuIconVo extends BaseUserVo {
使用Docker进行部署,后端接口地址以`/admin`开头,但前端默认请求前缀为`/api`,因此在请求时需要进行替换。详细内容请参考以下【项目部署】说明。
-## 配置相关
+## 前端部署
-### docker文件
+运行`pnpm build`
-```dockerfile
-# 使用官方的 Nginx 镜像作为基础镜像
-FROM nginx
+dockerfile中暴露端口要和生产环境的端口号保持一致
-# 删除默认的 Nginx 配置文件
-RUN rm /etc/nginx/conf.d/default.conf
+### 使用http协议
-# 将自定义的 Nginx 配置文件复制到容器中
-COPY nginx.conf /etc/nginx/conf.d/default.conf
+如果不使用https,需要将下面内容注释
-# 设置时区,构建镜像时执行的命令
-RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
-RUN echo "Asia/Shanghai" > /etc/timezone
+![image-20241108152526666](http://116.196.101.14:9000/docs/auth/image-20241108152526666.png)
-# 创建一个目录来存放前端项目文件
-WORKDIR /usr/share/nginx/html
+对外暴露端口改为`80`或者你自己喜欢的端口
-# 将前端项目打包文件复制到 Nginx 的默认静态文件目录
-COPY dist/ /usr/share/nginx/html
-# 复制到nginx目录下
-COPY dist/ /etc/nginx/html
+![image-20241108154244339](http://116.196.101.14:9000/docs/auth/image-20241108154244339.png)
-# 暴露 Nginx 的默认端口
-EXPOSE 80
+#### NGINX配置
-# 自动启动 Nginx
-CMD ["nginx", "-g", "daemon off;"]
-```
-
-### NGINX文件
-
-在请求中会使用代理所以会拿不到用户真实的IP地址,素以在要NGINX侠做下面的配置,这样用户在访问时就可以拿到真实的IP了
-
-```nginx
-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协议
-
-```dockerfile
-COPY bunny-web.site.csr /etc/nginx/bunny-web.site.csr
-COPY bunny-web.site.key /etc/nginx/bunny-web.site.key
-COPY bunny-web.site_bundle.crt /etc/nginx/bunny-web.site_bundle.crt
-COPY bunny-web.site_bundle.pem /etc/nginx/bunny-web.site_bundle.pem
-```
-
-NGINX的文件
+将NGINX配置修改为以下内容
```nginx
map $http_upgrade $connection_upgrade {
@@ -871,73 +905,174 @@ map $http_upgrade $connection_upgrade {
}
server {
- listen 80;
- listen [::]:80;
- server_name localhost;
+ listen 80 ;
+ listen [::]:80;
+ server_name localhost;
- location / {
- root /etc/nginx/html;
- index index.html index.htm;
- try_files $uri /index.html;
- }
+ location / {
+ root /etc/nginx/html;
+ index index.html index.htm;
+ try_files $uri /index.html;
+ }
- # 后端跨域请求
- location ~/admin/ {
- proxy_pass http://172.17.0.1:8000;
- proxy_set_header Host $http_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;
- }
+ # 后端跨域请求
+ location ~/admin/ {
+ proxy_pass http://172.17.0.1:8000;
+ proxy_set_header Host $http_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;
+ }
- error_page 404 404.html;
+ error_page 404 404.html;
- location = /50x.html {
- root html;
- }
+ location = /50x.html {
+ root html;
+ }
}
```
-## 项目部署
+如果你的暴露的端口和我一样是`80`
-使用WebStorm进行项目部署,项目上线时默认端口为80。因此,Docker默认暴露的IP端口也应为80,NGINX中默认暴露的端口也是80,三者应一一对应。
+![image-20241108154344561](http://116.196.101.14:9000/docs/auth/image-20241108154344561.png)
-若无法下载,请先使用pnpm下载。若不需使用pnpm,请删除或修改相应内容。
+### 使用https协议
-![image-20241026025057129](http://116.196.101.14:9000/docs/auth/undefinedimage-20241026025057129.png)
+#### 环境准备
-### docker配置
+需要ssl证书这个是必要的,之后将ssl证书解压
-![image-20241026024116090](http://116.196.101.14:9000/docs/auth/undefinedimage-20241026024116090.png)
+![image-20241108145836035](http://116.196.101.14:9000/docs/auth/image-20241108145836035.png)
-### 配置环境
+解压后放到docker文件下
-设置启动端口号和项目地址机器后端请求地址
+![image-20241108151141289](http://116.196.101.14:9000/docs/auth/image-20241108151141289.png)
-![image-20241026024813858](http://116.196.101.14:9000/docs/auth/undefinedimage-20241026024813858.png)
+#### 注意事项
-#### 配置线上环境
+在docker文件中需要将证书相关信息复制到docker容器中,名称对应文件下的文件名,如果你想部署名称肯定是不一样的,当然你可以重命名成和我一样的
-设置项目启动端口号,线上环境默认请求路径为`/admin`,需在NGINX中将访问请求前缀更改为`/admin`。
+```dockerfile
+# 将自定义的 Nginx 配置文件复制到容器中
+COPY nginx.conf /etc/nginx/conf.d/default.conf
+COPY bunny-web.site.csr /etc/nginx/bunny-web.site.csr
+COPY bunny-web.site.key /etc/nginx/bunny-web.site.key
+COPY bunny-web.site_bundle.crt /etc/nginx/bunny-web.site_bundle.crt
+COPY bunny-web.site_bundle.pem /etc/nginx/bunny-web.site_bundle.pem
+```
-![image-20241026024940747](http://116.196.101.14:9000/docs/auth/undefinedimage-20241026024940747.png)
+如果使用的是SSL链接将端口号更改下,改成`443`
-![image-20241026024243785](http://116.196.101.14:9000/docs/auth/undefinedimage-20241026024243785.png)
+![image-20241108151643011](http://116.196.101.14:9000/docs/auth/image-20241108151643011.png)
-#### 配置开发环境
+配置NGINX的配置文件,这些文件内容网上都有可以参看腾讯云文档
-开发环境默认IP为7000,若与本地项目端口冲突,请修改。后端请求地址为7070。
+- 证书下载和配置方式:https://cloud.tencent.com/document/product/400/4143?from_cn_redirect=1
+- NGINX搭建SSL链接:https://cloud.tencent.com/document/product/400/35244
-前端设置的请求前缀为`/api`,但后端接受的前缀为`/admin`,因此需在服务中修改此内容。
+```nginx
+map $http_upgrade $connection_upgrade {
+ default upgrade;
+ '' close;
+}
-![image-20241026024318644](http://116.196.101.14:9000/docs/auth/undefinedimage-20241026024318644.png)
+server {
+ #SSL 默认访问端口号为 443
+ listen 443 ssl;
+ #请填写绑定证书的域名
+ server_name localhost;
+ #请填写证书文件的相对路径或绝对路径
+ ssl_certificate bunny-web.site_bundle.crt;
+ #请填写私钥文件的相对路径或绝对路径
+ ssl_certificate_key bunny-web.site.key;
+ ssl_session_timeout 5m;
+ #请按照以下协议配置
+ ssl_protocols TLSv1.2 TLSv1.3;
+ #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
+ ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
+ ssl_prefer_server_ciphers on;
-**修改请求路径**
+ location / {
+ root /etc/nginx/html;
+ index index.html index.htm;
+ try_files $uri /index.html;
+ }
-![image-20241026031651591](http://116.196.101.14:9000/docs/auth/undefinedimage-20241026031651591.png)
+ # 后端跨域请求
+ location ~/admin/ {
+ proxy_pass http://172.17.0.1:8000;
+ proxy_set_header Host $http_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;
+ }
-### 部署命令
+ error_page 404 404.html;
+
+ location = /50x.html {
+ root html;
+ }
+ }
+
+server {
+ listen 80 ;
+ listen [::]:80;
+ server_name localhost;
+ return 301 https://$host$request_uri;
+
+ location / {
+ root /etc/nginx/html;
+ index index.html index.htm;
+ try_files $uri /index.html;
+ }
+
+ # 后端跨域请求
+ location ~/admin/ {
+ proxy_pass http://172.17.0.1:8000;
+ proxy_set_header Host $http_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;
+ }
+
+ error_page 404 404.html;
+
+ location = /50x.html {
+ root html;
+ }
+}
+```
+
+#### 运行docker文件
+
+![image-20241108151726981](http://116.196.101.14:9000/docs/auth/image-20241108151726981.png)
+
+![image-20241108151940158](http://116.196.101.14:9000/docs/auth/image-20241108151940158.png)
+
+> 命令预览
+>
+> ```sh
+> docker build -f Dockerfile -t bunny_auth_web:1.0.0 . && docker run -p 80:443 -p 443:443 --name bunny_auth_web --restart always bunny_auth_web:1.0.0
+> ```
+
+## 后端部署
+
+开发环境环境:对外暴露的端口是`7070`
+
+生产环境:对外暴露的端口是`8000`
+
+需要先打包,打包完成后会在目录下生成对应的`target`相关文件
```bash
-docker build -f Dockerfile -t bunny_auth_web:1.0.0 . && docker run -p 80:80 --name bunny_auth_web --restart always bunny_auth_web:1.0.0
+# 开发环境
+mvn clean package -Pprod -DskipTests
+
+# 测试环境
+mvn clean package -Ptest -DskipTests
```
+
+![image-20241108153705104](http://116.196.101.14:9000/docs/auth/image-20241108153705104.png)
+
+这个文件夹是必须的
+
+![image-20241108153750097](http://116.196.101.14:9000/docs/auth/image-20241108153750097.png)
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 349fcba..ae2e543 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -6,10 +6,10 @@ RUN rm /etc/nginx/conf.d/default.conf
# 将自定义的 Nginx 配置文件复制到容器中
COPY nginx.conf /etc/nginx/conf.d/default.conf
-#COPY bunny-web.site.csr /etc/nginx/bunny-web.site.csr
-#COPY bunny-web.site.key /etc/nginx/bunny-web.site.key
-#COPY bunny-web.site_bundle.crt /etc/nginx/bunny-web.site_bundle.crt
-#COPY bunny-web.site_bundle.pem /etc/nginx/bunny-web.site_bundle.pem
+COPY bunny-web.site.csr /etc/nginx/bunny-web.site.csr
+COPY bunny-web.site.key /etc/nginx/bunny-web.site.key
+COPY bunny-web.site_bundle.crt /etc/nginx/bunny-web.site_bundle.crt
+COPY bunny-web.site_bundle.pem /etc/nginx/bunny-web.site_bundle.pem
# 设置时区,构建镜像时执行的命令
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
@@ -24,7 +24,7 @@ COPY dist/ /usr/share/nginx/html
COPY dist/ /etc/nginx/html
# 暴露 Nginx 的默认端口
-EXPOSE 80
+EXPOSE 443
# 自动启动 Nginx
CMD ["nginx", "-g", "daemon off;"]
diff --git a/docker/bunny-web.site.csr b/docker/bunny-web.site.csr
new file mode 100644
index 0000000..8470be1
--- /dev/null
+++ b/docker/bunny-web.site.csr
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIC/DCCAeQCAQAwgYoxCzAJBgNVBAYTAkNOMRAwDgYDVQQIEwdCZWlqaW5nMRAw
+DgYDVQQHEwdCZWlqaW5nMQ8wDQYDVQQKEwZxY2xvdWQxDzANBgNVBAsTBnFjbG91
+ZDEXMBUGA1UEAxMOYnVubnktd2ViLnNpdGUxHDAaBgNVBAUTEzcwMjQ3NDk4NzQ4
+Mjg1OTA5MzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD1Ld0oD+qm
+7JM6uEphC+HfNPhVA3IgCSEXxaNOe+WzrvVefopk7odWpjZMCRMm8kS3YUXJI3as
+ff0NMJbmih7h7ESeQsd+JoPs+nIwFPovNYzjTfdw2Q0HQZ5zladbg4v7j1JWHQ4/
+7PpxhsD08KJ5hidGO6pq7WF+LDvm824teYhdGBCjqCBfsF7FSe0htVIFF6g1c4fC
+s/HLW+PLz/Crkr58OQZHEhyeC+wmnB1H5QBZHh2peNvfSgCXs5CQutGVtewfIsAU
+BLkHE6xFeYv1kWIguuycQ6FBFL+fRUAcXS9n8OXAwbIuTLeRLShtqBGQz4meSmC1
+UiJeedsKaawTAgMBAAGgLDAqBgkqhkiG9w0BCQ4xHTAbMBkGA1UdEQQSMBCCDmJ1
+bm55LXdlYi5zaXRlMA0GCSqGSIb3DQEBCwUAA4IBAQAEJRIgGVU0ij9TWdNFJ1y7
+YW67sGKH/zCjNfmwCWjvJ+zDDGxNpuwUiKj6jwDNL/ku99axIbJ3Rzn8HQ75N1M6
+IzNKTUtlEgYcj84khilGFOgS3Fr/BPpRLVjx0BdXHRO+sbKx5Gg2tqQwhVFqlJxM
+MYXpSbzjs+RwFZhy30l6Zhpu6nfkj3tBZYE+gTiOQaKXyUNrGZAVdFzesEaOIVcv
+oQFYFFU/HVsiizupS4tcL1GFko7fkNwXQ0Da3QEoA++JNC9RAi4iRfRjGxhnpk0N
+LqGV9Y2ExFn5VBZNyab1TIGmr3xSeGz1BNLLyoquRbcmSOS0WPW8koawBe/P90bM
+-----END CERTIFICATE REQUEST-----
\ No newline at end of file
diff --git a/docker/bunny-web.site.key b/docker/bunny-web.site.key
new file mode 100644
index 0000000..e35f4c6
--- /dev/null
+++ b/docker/bunny-web.site.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA9S3dKA/qpuyTOrhKYQvh3zT4VQNyIAkhF8WjTnvls671Xn6K
+ZO6HVqY2TAkTJvJEt2FFySN2rH39DTCW5ooe4exEnkLHfiaD7PpyMBT6LzWM4033
+cNkNB0Gec5WnW4OL+49SVh0OP+z6cYbA9PCieYYnRjuqau1hfiw75vNuLXmIXRgQ
+o6ggX7BexUntIbVSBReoNXOHwrPxy1vjy8/wq5K+fDkGRxIcngvsJpwdR+UAWR4d
+qXjb30oAl7OQkLrRlbXsHyLAFAS5BxOsRXmL9ZFiILrsnEOhQRS/n0VAHF0vZ/Dl
+wMGyLky3kS0obagRkM+JnkpgtVIiXnnbCmmsEwIDAQABAoIBAGvG2oYG4Sa5rkrM
+wl2AxKzC8zsjxaJRgQubJJuWmTXwfgoo5BtUQ4gSjqHEB3hCXXSjPPMbNMrEo12N
+83eqVcMIgm1ze5B3y9x7h4CdaBEioCk3l8MylqiO7uFucuAmpn1R1mbmZOIzATCw
+hNfng/SZxV/5UIOqkAXP2hE/BzrTapvzmYrKAYLqqLAfkuII5m16FgjbGuG4Dnch
+l+voT93fCK0fZkwz70oNYSos1F73XourXXfauuWCBy9kbmizfHU3klqkATZqPt1W
+cYSIaamZOWQ3PE66oRPDnGixTdw+IxPrr0htwXN7XKZVKgKzirBfDnI5HplUzPKL
+bowZmRECgYEA+dmAjXNPJeIJBgVTIeGZ3Td9jnZq+EeD5LGGfJ2bncZ3ExCNsiV/
+djMSj0KFZlkc7GNydSaig0GMoLJzr3vOpYi4/areWNZ5Ar4BkH/1S/0u9v+kYox4
+5vp1JJ6jRSw60A2YH5LI7Wzs8r7S/rIWo0RT/WFvj2gXqKiEfbwCLWkCgYEA+zbt
+88Ex+YOY1I2YYQL0eAH2l3DX4nqjJr6btsTZO/nd7tRI5v7VwOzdhU8YaC+Sj64+
+qPQUg/79cjlMO5FdVdX7k2Dms1ZcT6C9BnZ+NugEaZH9Sgmd2sBJNpGl0rAeZcSn
+R/gYTC13Z5vtKbUMtpsXZydKwey4wOT0J7fhkhsCgYAHcBkqnNcrWopIOppZ9Nxe
+wIslVZMjpwVfJoXJaeu7C7B5ydFeD023GBgiWamc/WQmCWPb5vWJkMb99bIJ9FaX
+iPVw38hUvrXFhiCHy7ditrvSMJQVNvdWcPhRycM0iPeLQAxaTEVdBBQdud6QJH8W
+By+06FSo4UFrDPE8yP8LmQKBgBKdJ1SAZCuQzKozM688gNDDlHn0Korle2FLjk4k
+l9QR15fystQq3bvF0UQncC+IFtv+lTX/n+WH50+nXzaqtre9ez6YV3/CTmS4DEmG
+TiPTXUBVSOdLfx7OUJ5yfE74Lchsodh7UZGTbN2IeDI28BI3u6wxBSEJYUcpr82h
+ml0xAoGBALHmuJxcaawZn2KC467Z8xP6+ggxzjsnnk+GlfqeqSmlaSVBo0Di8Nz2
+ekHHzRSIL+YZ3dsfrgR4IVigrlYETHGZl4BAtU2Yi0+1T1qhgTFkPlATuB5uHBhf
+dyULEujSQy+yeoS+RR+69XUswhhrNUgij9rKHDDjMHbdnKO0fSgs
+-----END RSA PRIVATE KEY-----
\ No newline at end of file
diff --git a/docker/bunny-web.site_bundle.crt b/docker/bunny-web.site_bundle.crt
new file mode 100644
index 0000000..2ad85d6
--- /dev/null
+++ b/docker/bunny-web.site_bundle.crt
@@ -0,0 +1,64 @@
+-----BEGIN CERTIFICATE-----
+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
+QT4W0Lc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFBzCCA++gAwIBAgIRALIM7VUuMaC/NDp1KHQ76aswDQYJKoZIhvcNAQELBQAw
+ezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
+BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0yMjAxMTAwMDAwMDBaFw0y
+ODEyMzEyMzU5NTlaMFkxCzAJBgNVBAYTAkNOMSUwIwYDVQQKExxUcnVzdEFzaWEg
+VGVjaG5vbG9naWVzLCBJbmMuMSMwIQYDVQQDExpUcnVzdEFzaWEgUlNBIERWIFRM
+UyBDQSBHMjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKjGDe0GSaBs
+Yl/VhMaTM6GhfR1TAt4mrhN8zfAMwEfLZth+N2ie5ULbW8YvSGzhqkDhGgSBlafm
+qq05oeESrIJQyz24j7icGeGyIZ/jIChOOvjt4M8EVi3O0Se7E6RAgVYcX+QWVp5c
+Sy+l7XrrtL/pDDL9Bngnq/DVfjCzm5ZYUb1PpyvYTP7trsV+yYOCNmmwQvB4yVjf
+IIpHC1OcsPBntMUGeH1Eja4D+qJYhGOxX9kpa+2wTCW06L8T6OhkpJWYn5JYiht5
+8exjAR7b8Zi3DeG9oZO5o6Qvhl3f8uGU8lK1j9jCUN/18mI/5vZJ76i+hsgdlfZB
+Rh5lmAQjD80M9TY+oD4MYUqB5XrigPfFAUwXFGehhlwCVw7y6+5kpbq/NpvM5Ba8
+SeQYUUuMA8RXpTtGlrrTPqJryfa55hTuX/ThhX4gcCVkbyujo0CYr+Uuc14IOyNY
+1fD0/qORbllbgV41wiy/2ZUWZQUodqHWkjT1CwIMbQOY5jmrSYGBwwIDAQABo4IB
+JjCCASIwHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYDVR0OBBYE
+FF86fBEQfgxncWHci6O1AANn9VccMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8E
+CDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAiBgNVHSAE
+GzAZMA0GCysGAQQBsjEBAgIxMAgGBmeBDAECATBDBgNVHR8EPDA6MDigNqA0hjJo
+dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNy
+bDA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9k
+b2NhLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAHMUom5cxIje2IiFU7mOCsBr2F6CY
+eU5cyfQ/Aep9kAXYUDuWsaT85721JxeXFYkf4D/cgNd9+hxT8ZeDOJrn+ysqR7NO
+2K9AdqTdIY2uZPKmvgHOkvH2gQD6jc05eSPOwdY/10IPvmpgUKaGOa/tyygL8Og4
+3tYyoHipMMnS4OiYKakDJny0XVuchIP7ZMKiP07Q3FIuSS4omzR77kmc75/6Q9dP
+v4wa90UCOn1j6r7WhMmX3eT3Gsdj3WMe9bYD0AFuqa6MDyjIeXq08mVGraXiw73s
+Zale8OMckn/BU3O/3aFNLHLfET2H2hT6Wb3nwxjpLIfXmSVcVd8A58XH0g==
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/docker/bunny-web.site_bundle.pem b/docker/bunny-web.site_bundle.pem
new file mode 100644
index 0000000..2ad85d6
--- /dev/null
+++ b/docker/bunny-web.site_bundle.pem
@@ -0,0 +1,64 @@
+-----BEGIN CERTIFICATE-----
+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
+QT4W0Lc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFBzCCA++gAwIBAgIRALIM7VUuMaC/NDp1KHQ76aswDQYJKoZIhvcNAQELBQAw
+ezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
+BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0yMjAxMTAwMDAwMDBaFw0y
+ODEyMzEyMzU5NTlaMFkxCzAJBgNVBAYTAkNOMSUwIwYDVQQKExxUcnVzdEFzaWEg
+VGVjaG5vbG9naWVzLCBJbmMuMSMwIQYDVQQDExpUcnVzdEFzaWEgUlNBIERWIFRM
+UyBDQSBHMjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKjGDe0GSaBs
+Yl/VhMaTM6GhfR1TAt4mrhN8zfAMwEfLZth+N2ie5ULbW8YvSGzhqkDhGgSBlafm
+qq05oeESrIJQyz24j7icGeGyIZ/jIChOOvjt4M8EVi3O0Se7E6RAgVYcX+QWVp5c
+Sy+l7XrrtL/pDDL9Bngnq/DVfjCzm5ZYUb1PpyvYTP7trsV+yYOCNmmwQvB4yVjf
+IIpHC1OcsPBntMUGeH1Eja4D+qJYhGOxX9kpa+2wTCW06L8T6OhkpJWYn5JYiht5
+8exjAR7b8Zi3DeG9oZO5o6Qvhl3f8uGU8lK1j9jCUN/18mI/5vZJ76i+hsgdlfZB
+Rh5lmAQjD80M9TY+oD4MYUqB5XrigPfFAUwXFGehhlwCVw7y6+5kpbq/NpvM5Ba8
+SeQYUUuMA8RXpTtGlrrTPqJryfa55hTuX/ThhX4gcCVkbyujo0CYr+Uuc14IOyNY
+1fD0/qORbllbgV41wiy/2ZUWZQUodqHWkjT1CwIMbQOY5jmrSYGBwwIDAQABo4IB
+JjCCASIwHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYDVR0OBBYE
+FF86fBEQfgxncWHci6O1AANn9VccMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8E
+CDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAiBgNVHSAE
+GzAZMA0GCysGAQQBsjEBAgIxMAgGBmeBDAECATBDBgNVHR8EPDA6MDigNqA0hjJo
+dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNy
+bDA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9k
+b2NhLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAHMUom5cxIje2IiFU7mOCsBr2F6CY
+eU5cyfQ/Aep9kAXYUDuWsaT85721JxeXFYkf4D/cgNd9+hxT8ZeDOJrn+ysqR7NO
+2K9AdqTdIY2uZPKmvgHOkvH2gQD6jc05eSPOwdY/10IPvmpgUKaGOa/tyygL8Og4
+3tYyoHipMMnS4OiYKakDJny0XVuchIP7ZMKiP07Q3FIuSS4omzR77kmc75/6Q9dP
+v4wa90UCOn1j6r7WhMmX3eT3Gsdj3WMe9bYD0AFuqa6MDyjIeXq08mVGraXiw73s
+Zale8OMckn/BU3O/3aFNLHLfET2H2hT6Wb3nwxjpLIfXmSVcVd8A58XH0g==
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/docker/nginx.conf b/docker/nginx.conf
index fca77a4..4be834d 100644
--- a/docker/nginx.conf
+++ b/docker/nginx.conf
@@ -3,10 +3,58 @@ map $http_upgrade $connection_upgrade {
'' close;
}
+server {
+ #SSL 默认访问端口号为 443
+ listen 443 ssl;
+ #请填写绑定证书的域名
+ server_name localhost;
+ #请填写证书文件的相对路径或绝对路径
+ ssl_certificate bunny-web.site_bundle.crt;
+ #请填写私钥文件的相对路径或绝对路径
+ ssl_certificate_key bunny-web.site.key;
+ ssl_session_timeout 5m;
+ #请按照以下协议配置
+ ssl_protocols TLSv1.2 TLSv1.3;
+ #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
+ ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
+ ssl_prefer_server_ciphers on;
+
+ location / {
+ root /etc/nginx/html;
+ index index.html index.htm;
+ try_files $uri /index.html;
+ }
+
+ # 后端跨域请求
+ location ~/admin/ {
+ proxy_pass http://172.17.0.1:8000;
+ proxy_set_header Host $http_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;
+ }
+
+ # 后端跨域请求
+ location ~/api/v1/ {
+ proxy_pass http://129.211.31.58:3000;
+ proxy_set_header Host $http_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;
+ }
+
+ error_page 404 404.html;
+
+ location = /50x.html {
+ root html;
+ }
+ }
+
server {
listen 80 ;
listen [::]:80;
server_name localhost;
+ return 301 https://$host$request_uri;
location / {
root /etc/nginx/html;
diff --git a/index.html b/index.html
index c6f9a51..80f6e51 100644
--- a/index.html
+++ b/index.html
@@ -4,6 +4,12 @@
+
+
bunny-admin
diff --git a/src/views/welcome/components/server-read-me.vue b/src/views/welcome/components/server-read-me.vue
index bda03ea..dbd57c6 100644
--- a/src/views/welcome/components/server-read-me.vue
+++ b/src/views/welcome/components/server-read-me.vue
@@ -8,7 +8,7 @@ const content = ref();
/** 获取文档信息 */
const onSearch = async () => {
- const response = await fetch('http://129.211.31.58:3000/api/v1/repos/auth/auth-server-java/contents/ReadMe.md');
+ const response = await fetch('/api/v1/repos/auth/auth-server-java/contents/ReadMe.md');
const json = await response.json();
content.value = decode(json.content);
};
diff --git a/src/views/welcome/components/web-read-me.vue b/src/views/welcome/components/web-read-me.vue
index 3bf6655..5963d62 100644
--- a/src/views/welcome/components/web-read-me.vue
+++ b/src/views/welcome/components/web-read-me.vue
@@ -8,7 +8,7 @@ const content = ref();
/** 获取文档信息 */
const onSearch = async () => {
- const response = await fetch('http://129.211.31.58:3000/api/v1/repos/auth/auth-web/contents/ReadMe.md');
+ const response = await fetch('/api/v1/repos/auth/auth-web/contents/ReadMe.md');
const json = await response.json();
content.value = decode(json.content);
};
diff --git a/src/views/welcome/utils/hooks.ts b/src/views/welcome/utils/hooks.ts
index be703eb..9aff996 100644
--- a/src/views/welcome/utils/hooks.ts
+++ b/src/views/welcome/utils/hooks.ts
@@ -8,7 +8,7 @@ export const serverCommitList = ref([]);
/** 获取web代码提交记录 */
export const getWebCommitList = async () => {
- const response = await fetch('http://129.211.31.58:3000/api/v1/repos/auth/auth-web/commits?page=1&limit=20');
+ const response = await fetch('/api/v1/repos/auth/auth-web/commits?page=1&limit=20');
const json = await response.json();
webCommitList.value = json.map(item => ({
date: dayjs(item?.commit?.committer?.date).format('YYYY-MM-DD HH:mm:ss'),
@@ -21,7 +21,7 @@ export const getWebCommitList = async () => {
};
/** 获取后端代码提交记录 */
export const getServerCommitList = async () => {
- const response = await fetch('http://129.211.31.58:3000/api/v1/repos/auth/auth-server-java/commits?page=1&limit=20');
+ const response = await fetch('/api/v1/repos/auth/auth-server-java/commits?page=1&limit=20');
const json = await response.json();
serverCommitList.value = json.map(item => ({
date: dayjs(item?.commit?.committer?.date).format('YYYY-MM-DD HH:mm:ss'),