Ver código fonte

增加了nginx的配置问题
增加了javaweb的文件上传功能

seamew 3 anos atrás
pai
commit
29acf84515

+ 1 - 1
linux/centos网络配置.md

@@ -36,7 +36,7 @@ DNS2=8.8.8.8
 
 ![image-20210705094943628](../照片/image-20210705094943628.png)
 
-4. ![image-20210628154743311](D:\笔记\照片\image-20210628154743311.png)
+4. ![image-20210628154743311](../照片/image-20210628154743311.png)
 
 5. 重启即可
 ```shell

+ 0 - 42
前端/前端部署问题/nginx+vue部署二级目录.md

@@ -1,42 +0,0 @@
-# nginx部署vue项目路径添加前缀
-
-需要让访问的地址加上dist或者其他前缀
-1. 修改nginx.conf文件
-```
-server {
-        listen       8081;
-        server_name  localhost;
- 
-        location / {  #不修改此处,确保用户直接输入ip+端口无法访问到系统
-            root   html;
-            index  index.html index.htm;
-        }
-        location /dist {#添加前缀,但html中存放vue的目录名尽量也要改成相同名字
-           alias  html/dist;
-           index  index.html index.htm;
-           try_files  $uri  $uri/   /index.html;
-        }
-}
-```
-
-2. 修改vue.config文件
-```
-dev: {
-
-    // Paths
-    assetsSubDirectory: 'static',
-    assetsPublicPath: '../',
-    // 代理列表, 是否开启代理通过[./dev.env.js]配置
-    proxyTable: devEnv.OPEN_PROXY === false ? {} : {
-      '/kubesphereApi' : {
-        target: 'http://10.168.59.60:30881',
-        changeOrigin: true,
-        pathRewrite: {
-          '^/kubesphereApi': ''
-        }
-      },
-    },
-```
-原因是vue打包后的资源文件默认是绝对路径,只有配置在根目录才有效。修改vue打包配置,找到vue.config.js,修改publicPath:'/'   为    ' ./  ' ,修改为相对路径
-
-3. 重新打包,重启nginx,启动成功

+ 151 - 0
前端/前端部署问题/nginx部署的问题.md

@@ -0,0 +1,151 @@
+>[TOC]
+
+
+# 1、nginx部署二级目录
+
+让访问的地址加上dist或者其他前缀
+1. 修改nginx.conf文件
+```
+server {
+        listen       8081;
+        server_name  localhost;
+ 
+        location / {
+        	# 不修改此处,确保用户直接输入ip+端口无法访问到系统
+            root   html;
+            index  index.html index.htm;
+        }
+        location /dist {
+         # 添加前缀,但html中存放vue的目录名尽量也要改成相同名字
+           alias  html/dist;
+           index  index.html index.htm;
+           # 删除缓存
+           add_header Cache-Control no-store;
+           try_files  $uri  $uri/   /index.html;
+        }
+}
+```
+
+2. 修改vue.config文件
+```
+dev: {
+
+    // Paths
+    assetsSubDirectory: 'static',
+    assetsPublicPath: '../',
+    // 代理列表, 是否开启代理通过[./dev.env.js]配置
+    proxyTable: devEnv.OPEN_PROXY === false ? {} : {
+      '/kubesphereApi' : {
+        target: 'http://10.168.59.60:30881',
+        changeOrigin: true,
+        pathRewrite: {
+          '^/kubesphereApi': ''
+        }
+      },
+    },
+```
+原因是vue打包后的资源文件默认是绝对路径,只有配置在根目录才有效。修改vue打包配置,找到vue.config.js,修改publicPath:'/'   为    ' ./  ' ,修改为相对路径
+
+3. 重新打包,重启nginx,启动成功
+
+# 2、静态文件无法代理
+
+
+```shell
+    server {
+        listen       80;
+        server_name  localhost;
+
+	    location ~ .*\.(js|css|gif|jpg|jpeg|png|bmp|swf|ttf|woff)$ {
+             root html;
+        }
+    }
+
+```
+
+# 3、nginx解决跨域
+
+```
+ server {
+        listen       80;
+        server_name  localhost;
+
+        #charset koi8-r;
+
+        #access_log  logs/host.access.log  main;
+
+
+        add_header Access-Control-Allow-Origin *;
+        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
+        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
+            
+        location / {
+            root  html;
+            index  index.html index.htm;
+        }	        
+}
+```
+
+# 4、nginx配置代理
+
+## 4.1、 如果不需要前缀
+
+```vue
+      '/kubesphereApi' : {
+        target: 'http://10.170.58.181:30881',
+        changeOrigin: true,
+        pathRewrite: {
+          '^/kubesphereApi': ''
+        }
+      },
+```
+
+nginx配置如下
+```
+location  ^~ /kubesphereApi/ {
+	proxy_pass http://10.170.58.181:30881/;
+	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-NginX-Proxy true;
+}
+# 注意如果加上二级目录这里加上
+location  ^~ /dist/kubesphereApi/ {
+	proxy_pass http://10.170.58.181:30881/;
+	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-NginX-Proxy true;
+}
+```
+
+## 4.2、 如果需要前缀
+
+```vue
+      '/mkcloud' : {
+        target: 'http://10.168.57.12:8085',
+        changeOrigin: true,
+        pathRewrite: {
+          '/mkcloud': '/mkcloud'
+        }
+      },
+```
+
+nginx配置如下
+```
+location /mkcloud {  
+	proxy_pass http://10.168.57.12:8085;
+	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-NginX-Proxy true;
+}
+# 注意如果加上二级目录这里加上
+location ^~ /dist/mkcloud/ {  
+	proxy_pass http://10.168.57.12:8085/mkcloud/;
+	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-NginX-Proxy true;
+}
+```

+ 48 - 0
后端/JavaWeb/文件上传和邮件发送.md

@@ -0,0 +1,48 @@
+>[TOC]
+
+# 文件上传
+
+***
+
+## 1、上传注意事项
+
+1. 上传的文件存放在一个不能使用外界URL访问的目录下面,比如WEB-INF目录下
+2. 上传到同一个文件夹中的文件名称应该唯一:使用时间戳/UUID/MD5等手段实现
+3. 限制上传文件的最大值:因为服务器上硬盘资源很贵,不能让用户随意的使用
+4. 限制文件上传类型:比如这个文件夹只用来存储图片,那你就不能上传一个.mp4的文件
+
+## 2、文件上传需要使用到的3个类+1个属性
+
+* ServletFileUpload:在后端获取文件上传的文件数据,并将上传文件数据的表单中的每个输入项都封装为一个FileItem对象
+* FileItem
+* DiskFileItemFactory:使用ServletFileUpload解析前端表单传过来的文件数据时需要使用到DiskFileItemFactory对象,所以在获取ServletFileUpload对象之前我们需要先获取DiskFileItemFactory对象
+* fileItemFactory属性:ServletFileUpload对象的一个属性
+* ServletFileUpload负责处理上传的文件数据,并将表单中每个输入项封装成一个FileItem对象, 在使用ServletFileUpload对象解析请求时需要DiskFileItemFactory对象。所以,我们需要在进行解析工作前构造好DiskFileItemFactory对象,通过ServletFileUpload对象的构造方法或setFileItemFactory()方法设置ServletFileUpload对象的fileItemFactory属性。
+
+## 3、常用方法介绍
+
+```java
+//isFormField方法用于判断FileItem类对象封装的数据是一个普通文本表单
+//还是一个文件表单,如果是普通表单字段则返回true,否则返回false
+boolean isFormField();
+
+//getFieldName方法用于返回表单标签name属性的值。
+String getFieldName();//获取这个input的name属性值
+
+//getString方法用于将FileItem对象中保存的数据流内容以一个字符串返回
+String getString();//用字符串存储文件的数据流
+    
+//getName方法用于获得文件上传字段中的文件名
+String getName();
+
+//以流的形式返回上传文件的数据内容。
+InputStream getInputStream()
+
+//delete方法用来清空FileItem类对象中存放的主体内容
+//如果主体内容被保存在临时文件中,delete方法将删除该临时文件。
+void delete();
+```
+
+## 4、ServletFileUpload 类
+
+ServletFileUpload负责处理上传的文件数据,并将表单中每个输入项封装成一个FileItem对象中 . 使用其parseRequest(HttpServletRequest) 方法可以将通过表单中每一个HTML标签提交的数据封装成一个FileItem对象,然后以List列表的形式返回,使用该方法处理上传文件简单易用

+ 1 - 0
后端/Mysql/6.安装navicat.md

@@ -0,0 +1 @@
+[Navicat Premium 15 安装激活教程(超详细)](https://mp.weixin.qq.com/s/3xnpVlPPIZPtkg2krhrcAg)

+ 2 - 0
后端/SMBMS/smbms.md

@@ -57,4 +57,6 @@
 
 1. 导入分页工具类
 2. 用户列表页面导入
+3. 获取角色操作
+4. 编写Servlet类
 

BIN
大数据/云平台安装文档/assets/image-20211123200112617.png


+ 39 - 1
大数据/云平台安装文档/安装云平台环境.md

@@ -185,7 +185,7 @@ mkdir -p /etc/docker
 
 tee /etc/docker/daemon.json <<-'EOF'
 {
-  "insecure-registries": ["server.harbor.com:80", "server.harbor.com", "10.168.59.60", "10.168.59.60:80"]
+  "insecure-registries": ["server.harbor.com:80"]
 }
 EOF
 
@@ -563,6 +563,44 @@ kubectl -n kubesphere-system patch svc ks-apiserver -p '{"spec":{"type":"NodePor
 4. 添加成功会显示私有密钥
 ![image-20211118211733125](assets/image-20211118211733125.png)
 
+# 6、目前遇见的BUG与解决方案
+
+***
+
+## 6.1、harbor仓库登录显示400错误
+
+![image-20211123200112617](assets/image-20211123200112617.png)
+```shell
+Error response from daemon: login attempt to https://server.harbor.com/v2/ failed with status: 400 Bad Request
+```
+
+查询相关文档发现是nginx的配置出现了问题
+[Docker 登录返回 400 错误请求](https://github.com/goharbor/harbor/issues/7159)
+
+```shell
+#修改方式如下
+#1.进入harbor仓库位置
+cd /home/mkcloud/software/harbor
+#2.修改配置文件
+vim ./common/config/portal/nginx.conf
+#3.增加一个字段
+http {
+    client_body_temp_path /tmp/client_body_temp;
+    proxy_temp_path /tmp/proxy_temp;
+    fastcgi_temp_path /tmp/fastcgi_temp;
+    uwsgi_temp_path /tmp/uwsgi_temp;
+    scgi_temp_path /tmp/scgi_temp;
+    large_client_header_buffers 4 1k;  #增加的
+    
+#4.重启nginx即可
+docker ps 
+#执行的结果e939b007b6ca   goharbor/harbor-core:v2.3.2          "/harbor/entrypoint.…"
+
+docker restart e39629e9c2c4
+```
+
+
+
 # 附录----安装软件的版本
 
 | 软件           | 版本    |